Redis (REmote DIctionary Server) ã¯ãã¡ãã»ãŒãž ãããŒã«ãŒããã£ãã·ã¥ãããã³ NoSQL ããŒã¿ããŒã¹ç®¡çã·ã¹ãã ãšããŠæ©èœã§ãã髿§èœã®ã€ã³ã¡ã¢ãª ããŒã¿ ã¹ãã¢ã§ãã Redis ã¯ãæ¯é¡ã®ãªãéåºŠãšæè»æ§ã§ç¥ãããŠãããé«éããŒã¿åŠçã¿ã¹ã¯ã®ç®¡çã«åªããŠãããããããã¯ãšã³ãéçºã·ããªãªã§åºãæ¡çšãããŠããŸãã Redis ã¯ãªãŒãã³ãœãŒã¹ ãœãªã¥ãŒã·ã§ã³ãšããŠåºç¯ãªéçºè ã³ãã¥ããã£ãèªããå¹ åºããŠãŒã¹ã±ãŒã¹ã«ããã£ãŠç¶ç¶çãªé²åãšæé©åãä¿èšŒããŸãã
ããã¯ãšã³ãéçºã§ã¯ãRedis ã¯æååãããã·ã¥ããªã¹ããã»ããããœãŒããããã»ããããããããããªã©ãå«ãããŸããŸãªããŒã¿æ§é ããµããŒãããŸãããã®å€çšéæ§ã«ãããéçºè ã¯ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã®ããŒãºã«åãããå¹ççã§ã¹ã±ãŒã©ãã«ãªããŒã¿ ã¹ãã¬ãŒãž ãœãªã¥ãŒã·ã§ã³ãèšèšããã³å®è£ ã§ããŸããã€ã³ã¡ã¢ãª ããŒã¿ ã¹ãã¢ãšããŠãRedis ã¯ãäœéã®ãã£ã¹ã¯ ããŒã¹ã®ã¹ãã¬ãŒãž ãœãªã¥ãŒã·ã§ã³ãšæ¯èŒããŠãRAM ããŒã¹ã®ã¹ãã¬ãŒãžã«åºæã®ã¢ã¯ã»ã¹æéã®åäžãã倧ããªæ©æµãåããŸãã
AppMaster no-codeãã©ãããã©ãŒã ã䜿çšãããšãéçºè 㯠Redis ã®äž»èŠãªæ©èœããã©ãããã©ãŒã ã®åºç¯ãªæ©èœãšé£æºããŠæŽ»çšããå ç¢ã§ããã©ãŒãã³ã¹ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã AppMasteréçºããã»ã¹ãç°¡çŽ åããæè¡è 以å€ã®ãŠãŒã¶ãŒã§ãããžã¥ã¢ã« ã€ã³ã¿ãŒãã§ã€ã¹ãéããŠããŒã¿ ã¢ãã«ãããã¯ãšã³ã ããžãã¹ ããžãã¯ã API ã äœæã§ããããã«ããŸããããã«ãããRedis ãå©çšããã¢ããªã±ãŒã·ã§ã³ã®èšèšãå®è£ ãã¡ã³ããã³ã¹ãåçåãããåæã«ã³ã³ãã€ã«ãããã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ã®å©ç¹ãæäŸãããŸãã
Redis ã®æ³šç®ãã¹ãç¹åŸŽã® 1 ã€ã¯ããããªãã·ã¥/ãµãã¹ã¯ã©ã€ã (Pub/Sub) ã¡ãã»ãŒãžã³ã° ãã¿ãŒã³ã®ãµããŒãã§ãã Pub/Sub ã䜿çšãããšãããŒã¿ ãããã¥ãŒãµãŒãã€ãŸãããããªãã·ã£ãŒãã¯ãã©ã®ãµãã¹ã¯ã©ã€ããŒãååšããããç¥ããªããŠããè€æ°ã®ããµãã¹ã¯ã©ã€ããŒãã«ã¡ãã»ãŒãžãé åžã§ããŸããããã«ãããããŒã¿ã®ãããã¥ãŒãµãŒãšã³ã³ã·ã¥ãŒããŒãåãé¢ãããã¹ã±ãŒã©ããªãã£ãšãã©ãŒã«ã ãã¬ã©ã³ã¹ãä¿é²ãããŸãã AppMasterã䜿çšããéçºè ã¯ãRedis Pub/Sub ã¢ãã«ã䜿çšããŠãããŸããŸãªç®çã§ãªã¢ã«ã¿ã€ã ã¡ãã»ãŒãžã³ã°ãããŒã¿ ã¹ããªãŒãã³ã°ãå¿ èŠãšããã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
Redis ã«ã¯ãä¿¡é Œæ§ãšå¯çšæ§ã«è²¢ç®ããçµã¿èŸŒã¿ã®ã¬ããªã±ãŒã·ã§ã³æ©èœããããŸãã 1 ã€ã®ãã¹ã¿ãŒ ã€ã³ã¹ã¿ã³ã¹ãšè€æ°ã®ã¹ã¬ãŒã ã€ã³ã¹ã¿ã³ã¹ã«ããéåæã®ãã¹ã¿ãŒ/ã¹ã¬ãŒã ã¬ããªã±ãŒã·ã§ã³ãå¯èœã«ãªããŸãããã¹ã¿ãŒ ã€ã³ã¹ã¿ã³ã¹ã§é害ãçºçããå Žåã¯ã代ããã«ã¹ã¬ãŒããææ Œãããããšãã§ããããŠã³ã¿ã€ã ãšããŒã¿æå€±ãæå°éã«æããããšãã§ããŸãã AppMasterãšã³ã·ã¹ãã å ã§ Redis ã¬ããªã±ãŒã·ã§ã³ãšçæããã Go ããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ãçµã¿åãããããšã§ãé«è² è·ã®ãšã³ã¿ãŒãã©ã€ãº ã¬ãã«ã®ã·ããªãªã®ããŒãºãæºãããå¯çšæ§ãšã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãä¿èšŒãããŸãã
ãã£ãã·ã¥å ã®ããŒã¿ã®ç®¡çã«é¢ããŠã¯ãRedis ã¯æãæè¿äœ¿çšãããŠããªã (LRU) ããªã·ãŒãšåç¶æé (TTL) ã®äž¡æ¹ã®åé€ããªã·ãŒãæäŸããŸãã LRU ã¯ã¢ã¯ã»ã¹é »åºŠã®äœãã¢ã€ãã ããã£ãã·ã¥ããåé€ããŸãããTTL ã¯ã¢ã€ãã ã®æå¹æéãäºåã«èšå®ããæéåãã«ãªããšåé€ããŸãããããã®ãã£ãã·ã¥æ©èœã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ãåäžããããããã¡ãšããŠæ©èœããããŒã¿ããŒã¹ã®è² è·ã軜æžããŸãã
AppMasterã«ãã£ãŠçæãããããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã¯ããã©ã€ã㪠ã¹ãã¬ãŒãž ãªããžããªãšããŠä»»æã® PostgreSQL äºæããŒã¿ããŒã¹ãšçµ±åã§ããŸãããã£ãã·ã¥ãã¡ãã»ãŒãž ãããŒã«ãªã³ã°ããŸãã¯ãã®ä»ã®è£å©çãªç®çã« Redis ãæ¡çšããããšã¯ãå®çšçã§å¹æçãªã¢ãããŒãã§ãã Redis ã®ããã©ãŒãã³ã¹äžã®å©ç¹ãè£å®ãããããããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã®éçºã« Go ã䜿çšãããšãã³ã³ãã€ã«ããããªãœãŒã¹å¹çã®é«ãå®è¡å¯èœãã¡ã€ã«ã確ä¿ããããšã³ã¿ãŒãã©ã€ãºããã³é«è² è·ã®ã·ããªãªã§ã®ã¹ã±ãŒã©ããªãã£ãåäžããŸãã
Redis ã¯ãããã¯ãšã³ãéçºãã¡ã€ã³ã«ãããŠè²Žéãªã³ã³ããŒãã³ããšãªãããŸããŸãªæ©èœãåããã匷åã§å€çšéãªã€ã³ã¡ã¢ãª ããŒã¿ ã¹ãã¢ã§ãã AppMasterãã©ãããã©ãŒã å ã«çµ±åãããŠãããããéçºè ã¯ãã«ã¹ã¿ã æ§ç¯ãœãªã¥ãŒã·ã§ã³ãæäŸããæå¹æ§ãšé©å¿æ§ãç ç²ã«ããããšãªããç°¡åã§èŠèŠçãªéçºããã»ã¹ã«éäžã§ããŸãã RedisãGoã AppMasterã®çžä¹å¹æã掻çšããããšã§ãããã¯ãšã³ãéçºããŒã ã¯ãããŸããŸãªãŠãŒã¹ã±ãŒã¹ãèŠä»¶ã«å¯Ÿå¿ãããå¹ççã§ã¹ã±ãŒã©ãã«ãªé«æ§èœã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã