Redis ãšã®ããŒãããŒã·ããã§ç¶æãããŠãã Redis Docker å ¬åŒã€ã¡ãŒãž (DOI) ã䜿çšãããšãéçºè 㯠Redis ã€ã³ã¹ã¿ã³ã¹ããã°ããç°¡åã«ã³ã³ãããŒåã§ããŸããã¯ãã¹ãã©ãããã©ãŒã ã®ãããã€ããã»ã¹ãåçåãããã¯ãŒã¯ãããŒããµããŒãããŠããå Žåã¯ãšããžããã€ã¹ã§Redisã䜿çšããããšãã§ããŸããÂ
éçºè ã¯ã Docker HubããRedis DOIã10åå以äžåŒãåºããŸããã äžçã§æã人æ°ã®ããããŒããªã¥ãŒã¹ãã¢ãšããŠãRedisã¯ããªãœãŒã¹ã«åªãããŸãŸãã¢ããªãéèŠãªããŒã¿ã«åæã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã ããã©ãŒãã³ã¹ãé«ããã€ã³ã¡ã¢ãªã§ããããã¯ãŒã¯åãããèä¹ æ§ããããŸãã ãŸãã衚圢åŒã®ããŒã¿æ§é ã䜿çšããMySQLãPostgreSQLãªã©ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšã¯äžç·ãç»ããŠããŸãã 忥ãããRedisã¯ãªãŒãã³ãœãŒã¹ã§ããããŸããÂ
æåŸã«ãRedis ã¯ã©ã¹ã¿ãŒããŒãã¯æ°Žå¹³æ¹åã«ã¹ã±ãŒã©ãã«ã§ãããããã³ã³ããåããã«ãã³ã³ããéçšã«èªç¶ã«é©åããŸãã Redis Docker å ¬åŒã€ã¡ãŒãžã䜿çšã㊠Redis ããŒã¿ããŒã¹ã®ãããã€ãã³ã³ãããŒåããé«éåããæ¹æ³ãæ¢ãæ¹æ³ãã玹ä»ããŸãã
ãã®ãã¥ãŒããªã¢ã«ã®å 容:
- Redis Docker Official Image ãšã¯äœã§ãã?
- ããã«ãŒã§Redisãå®è¡ããæ¹æ³
- æ§æãšã¢ãžã¥ãŒã«
- ä»ããRedisã䜿ãå§ããŸããã
Redis Docker Official Image ãšã¯äœã§ãã?

Redis DOI ã¯ãRedis Docker ã³ã³ãããŒã®ãã«ãã£ã³ã° ãããã¯ã§ãã ããã¯ãDockerãšã¢ããªã±ãŒã·ã§ã³ã®åäœæ¹æ³ãæç€ºãã å®è¡å¯èœãœãããŠã§ã¢ããã±ãŒãž ã§ãã ãœãŒã¹ã³ãŒããäŸåé¢ä¿ãã©ã€ãã©ãªãããŒã«ãããã³ã¢ããªã±ãŒã·ã§ã³ããµããŒããããã®ä»ã®ã³ã¢ã³ã³ããŒãã³ãããã³ãã«ãããŠããŸãã ãã®å Žåããããã®ã³ã³ããŒãã³ãã«ãã£ãŠãã¢ããªãš Redis ããŒã¿ããŒã¹ã®çžäºäœçšã決ãŸããŸãã
åœç€Ÿã® Redis Docker å
¬åŒã€ã¡ãŒãžã¯ãè€æ°ã® CPU ã¢ãŒããã¯ãã£ããµããŒãããŠããŸãã 50 ãè¶
ãããµããŒããããŠããã¿ã°ã®åæãã«ããããããžã§ã¯ãã«æé©ãª Redis ã€ã¡ãŒãžãéžæã§ããŸãã ãŸããå€å±€ã§ãããããã©ã«ãèšå®ã䜿çšããŠå®è¡ãããŸã(åã«ã䜿çšããŠããå Žå docker pull)ã è€éããšåºæ¬ã€ã¡ãŒãžãã¿ã°ã«ãã£ãŠç°ãªããŸããÂ
ãšã¯ãããå¿
èŠã«å¿ããŠRediså
¬åŒã€ã¡ãŒãž Dockerfile ãæ§æããããšãã§ããŸãã ããã«ã€ããŠã¯ãRedis DOIã®äœ¿ç𿹿³ã説æããªããè§ŠããŸãã å§ããŸãããã
ããã«ãŒã§Redisãå®è¡ããæ¹æ³
ç¶è¡ããåã«ã Dockerãã¹ã¯ããããã€ã³ã¹ããŒã«ããããšããå§ãããŸãã Desktop 㯠Docker Engine äžã«æ§ç¯ãããŠãããDocker CLIãDocker Compose ãªã©ãããã±ãŒãžåããŠããŸãã Docker Desktop ãå®è¡ãããšãDocker ã³ãã³ãã䜿çšã§ããããã«ãªããŸãã ãŸããDocker ããã·ã¥ããŒã UI ã䜿çšããŠã€ã¡ãŒãžãšã³ã³ãããŒã管çããã®ã«ã圹ç«ã¡ãŸããÂ
ã¯ã€ã㯠ãã« ã³ãã³ãã䜿çšãã
次ã«ããããžã§ã¯ãã§äœ¿çšããããã« Redis DOI ããã«ããå¿
èŠããããŸãã æãç°¡åãªæ¹æ³ã¯ãDocker Hubã®ç»åããŒãžã«ã¢ã¯ã»ã¹ããã³ãã³ããã³ããŒã㊠docker pull ãã¿ãŒããã«ã§å®è¡ããããšã§ãã
åºåã«ãããDocker ã Redis ã€ã¡ãŒãžãæ£åžžã«ãã« :latest ããããšã確èªãããŸãã Dockerãã¹ã¯ãããã«é£ã³èŸŒã¿ãå·ŠåŽã®ãµã€ãããŒãã ç»å ã€ã³ã¿ãŒãã§ã€ã¹ãéããŠãããã確èªããããšãã§ããŸãã redis ç»åããªã¹ãã«èªåçã«è¡šç€ºãããŸãã

ãŸããæ°ããRedisã€ã¡ãŒãžã®ãµã€ãºã111.14MBã§ããããšãããããŸãã ããã¯å€ãã®ç»åã«æ¯ã¹ãŠããªã軜éã§ãã ãã ããã®ãã㪠redis:alpine3.16 é«å±±ã®äºçš®ã䜿çšãããš ãç»åãããã«ã¹ãªã ã«ãªããŸãã
Docker Desktop ã«ã€ããŠçè§£ãããšããã§ã次㯠CLI ã¯ãŒã¯ãããŒã«é²ã¿ãRedis ãèµ·åããŠå®è¡ããŠã¿ãŸããããÂ
Redis ã€ã³ã¹ã¿ã³ã¹ãèµ·åãã
Redisã¯ãµãŒããŒãšããŠæ©èœããé¢é£ãããµãŒããŒããã»ã¹ããã®æ©èœã匷åããŸãã Redisã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãœãããŠã§ã¢ãµãŒããŒããã»ã¹ãã¢ããªã±ãŒã·ã§ã³ã«ãªã³ã¯ããåã«ãéå§ããå¿ èŠããããŸãã ããããã1 ã€ã®ã³ãã³ãã§å®è¡äžã®ã€ã³ã¹ã¿ã³ã¹ãäœæã§ããŸããÂ
docker run --name some-redis -d redis
ã³ã³ãããŒã«ååãä»ããããšããå§ãããŸãã ããã¯ãåŸã§åç §ããã®ã«åœ¹ç«ã¡ãŸãã ãŸããããã«é¢é£ãã远å ã®ã³ãã³ãã®å®è¡ãç°¡åã«ãªããŸãã ã³ã³ããã¯ã忢ãããŸã§å®è¡ãããŸããÂ
ãã®ã³ãã³ãã远å ãã -d redis ãšãDocker 㯠Redis ãµãŒãã¹ã "ãã¿ãã" ã¢ãŒãã§å®è¡ããŸãã ãããã£ãŠãRedis ã¯ããã¯ã°ã©ãŠã³ãã§å®è¡ãããŸãã ã³ã³ããã¯ãã«ãŒãããã»ã¹ãçµäºãããšèªåçã«çµäºããŸãã ãã®ã³ãã³ãå
ã§ãµãŒãã¹ã« "start" ãæç€ºçã«æç€ºããŠããªãããšãããããŸãã ãã®èšãåããçç¥ããããšã§ãRedisãµãŒãã¹ãéå§ãããå®è¡ãç¶ç¶ãããã¢ããªã±ãŒã·ã§ã³ã§åŒãç¶ã䜿çšã§ããŸãã
Redis æ°žç¶ã¹ãã¬ãŒãžãã»ããã¢ãããã
æ°žç¶ã¹ãã¬ãŒãžã¯ãã¢ããªã±ãŒã·ã§ã³ã§å®è¡éã§ããŒã¿ãä¿åããå Žåã«éèŠã§ãã Redisã«SSDãªã©ã®å®å ã«ããŒã¿ãæžã蟌ãŸããããšãã§ããŸãã æ°žç¶åã¯ãåèµ·ååŸããã° ãã¡ã€ã«ãä¿æããå Žåã«ã圹ç«ã¡ãŸããÂ
ãã¹ãŠã® Redis æäœã¯ãRedis ããŒã¿ããŒã¹ (RDB) ã¡ãœããã䜿çšããŠãã£ããã£ã§ããŸãã ããã«ãããã¹ãããã·ã§ããééãæå®ããç¹å®ã®æç¹ã§ããŒã¿ãèšé²ã§ããŸãã ãã ããæåã® docker run ã³ãã³ãããå®è¡äžã®ã³ã³ãããŒã¯ããŒã 6379 ã䜿çšããŠããŸãã ãã®äŸã§ã¯éèŠã§ã¯ãªããããå
ã«é²ãåã«ãã®ã³ã³ãããŒãåé€ (ãŸãã¯åæ¢) ããå¿
èŠããããŸããÂ
ãããå®äºãããšããã®ã³ãã³ã㯠60 ç§ããšã«æ°žç¶ã¹ãã¬ãŒãž ã¹ãããã·ã§ãããããªã¬ãŒããŸããÂ
docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning
RDB ã¢ãããŒãã¯ã"èšå®ããŠå¿ãã" æ°žç¶æ§ãå¯èœã«ããããã䟡å€ããããŸãã ãŸããããå€ãã®ãã°ãçæãããŸãã ãã°èšé²ã¯ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«åœ¹ç«ã¡ãŸãããæéã®çµéã«äŒŽã环ç©ãç£èŠããå¿ èŠããããŸããÂ
ãã ããæ°žç¶åãå®å šã«æŸæ£ããããšããå¥ã®ãªãã·ã§ã³ãéžæããããšãã§ããŸãã 詳现ã«ã€ããŠã¯ã Redis ã®ããã¥ã¡ã³ããåç §ããŠãã ãããÂ
Redis ã¯ãæ°žç¶åãããããŒã¿ããã® VOLUME /data å Žæã«ä¿åããŸãã ãããã®æ¥ç¶ãããããªã¥ãŒã ã¯ãã³ã³ãããŒéã§å
±æã§ããŸãã ãã®å
±æå¯èœæ§ã¯ãRedis ã 1 ã€ã®ã³ã³ãããŒå
ã«ååšããã¢ããªã±ãŒã·ã§ã³ãå¥ã®ã³ã³ãããŒãå æããŠããå Žåã«åœ¹ç«ã¡ãŸããÂ
Redis CLI ã䜿çšããŠæ¥ç¶ãã
Redis CLI ã䜿çšãããšãå®è¡äžã® Redis ã³ã³ãããŒå ã§ã³ãã³ããçŽæ¥å®è¡ã§ããŸãã ãã ããããã¯Dockerãä»ããŠèªåçã«å¯èœã«ãªãããã§ã¯ãããŸããã æ¬¡ã®ã³ãã³ããå ¥åããŠããã®æ©èœãæå¹ã«ããŸããÂ
docker network create some-network
ââdocker run -it --network some-network --rm redis redis-cli -h some-redis
Redis ãµãŒãã¹ã¯ Redis CLI ã³ãã³ããèªèããŸãã ããŸããŸãªCLIã¢ãŒããšåæ§ã«ã倿°ã®ã³ãã³ãããµããŒããããŠããŸãã 詳现ã«ã€ããŠã¯ã Redis CLI ã®ããã¥ã¡ã³ã ãåç §ããŠãã ãããÂ
CLI æ©èœãèµ·åããŠå®è¡ãããšãRedisãããçŽæ¥çã«æŽ»çšã§ããããã«ãªããŸãã
æ§æãšã¢ãžã¥ãŒã«
æåŸã«ãã«ã¹ã¿ãã€ãºã«å°éããŸããã ããã©ã«ãã䜿çšããŠRedisãå©çšããã¢ããªãå®è¡ã§ããŸãããæ¢åã® redis.conf ãã¡ã€ã«ãååŸããããã«åŸ®èª¿æŽ Dockerfile ã§ããŸããããã«ãããéçšã¢ããªã±ãŒã·ã§ã³ã®ãµããŒããåäžããŸãã Redis ã¯ãããã®ãã¡ã€ã«ããªããŠãæ£åžžã«èµ·åã§ããŸããããµãŒãã¹ãæ§æããäžã§äžå¿çãªåœ¹å²ãæãããŸããÂ
ãã¡ã€ã«ãã©ã®ããã«èŠããã redis.conf ã¯ã GitHub ã§ç¢ºèªã§ããŸãã ãã以å€ã®å Žåã¯ãããã«ãµã³ãã« DockerfileããããŸã:Â
FROM redis COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
ãããå®çŸããããã«ã䜿çšã§ããŸã docker run ã ãã ãããã®ã¡ãœãããæ£ããæ©èœãããã«ã¯ãæåã« 2 ã€ã®ããšãè¡ãå¿
èŠããããŸãã ãŸãããã¹ããã·ã³äžã«ãã£ã¬ã¯ããªãäœæããŸã /myredis/config ã ããã¯ãæ§æãã¡ã€ã«ãæ ŒçŽãããå Žæã§ããÂ
次ã«ãDockerãã¹ã¯ããããéããå³äžã®[èšå®]æ¯è»ãã¯ãªãã¯ããŸãã ã ãªãœãŒã¹ã>ããã¡ã€ã«å
±æ ããéžæããŠããã£ã¬ã¯ããªã®ãªã¹ãã衚瀺ããŸãã äžéšã«ã°ã¬ãŒè¡šç€ºããããã£ã¬ã¯ããªãšã³ããªã衚瀺ãããŸãããããã¯ååä»ããã£ã¬ã¯ããªã®å
¥åãã£ãŒã«ãã§ãã /myredis/config ããã«å
¥åããã+ããã¿ã³ãæŒããŠãã¡ã€ã«ãã¹ãããŒã«ã«ã§ç¢ºèªããŸãã

ããã§ãã³ãã³ããå®è¡ããæºåãæŽããŸãããÂ
docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf
ããã«ãã Dockerfile ãç»åã®æ§é ããã现ããå¶åŸ¡ã§ããŸãã ãŸãã¯ãCLI ãªãã·ã§ã³ã䜿çšãããš Dockerfileã. ããªãã®ããŒãºãããåºæ¬çã§ãããªãã°ãããã¯ãã芪ãã¿ããããããããŸããã ãããããããã£ã¬ã¯ããªãæžã蟌ã¿å¯èœã§ãããããŒã«ã«ã«ååšããããšã確èªããŠãã ãããÂ
ãŸããæ¬¡ã®ç¹ãèæ ®ããŠãã ãããÂ
- Redis èšå®ããã®å Žã§ç·šéããå Žåã¯ã ã䜿çšããŠ
CONFIG REWRITEãæ¬¡åã®å®è¡æã«ãã£ãŒã«ãã®å€æŽãèªåçã«èå¥ããŠé©çšããå¿ èŠããããŸãã - æ§æã®å€æŽãæåã§é©çšããããšãã§ããŸãã
以åã« Redis CLI ãæ¥ç¶ããæ¹æ³ãèŠããŠããŸãã? Redis CLI (ãã¹ãã«æé©) ãä»ããŠåŒæ°ãçŽæ¥æž¡ããããŒã¿ããŒã¹ãµãŒããŒã®å®è¡äžã«èšå®ãç·šéã§ããããã«ãªããŸãããÂ
Redisã¢ãžã¥ãŒã«ã®äœ¿çšã«é¢ããæ³šæäºé
Redis ã¢ãžã¥ãŒã«ã䜿çšãããšãRedis ãµãŒãã¹ãæ¡åŒµããæ°ãããµãŒãã¹ãæ§ç¯ããããã©ãŒãã³ã¹ãäœäžãããããšãªãããŒã¿ããŒã¹ãé©å¿ãããããšãã§ããŸãã Redis ã¯ã¡ã¢ãªå
ã§ãããããåŠçããŸãã ãããã®æšæºã¢ãžã¥ãŒã«ã¯ãã¯ãšãªãæ€çŽ¢ãJSON åŠçããã£ã«ã¿ãŒåŠçãªã©ããµããŒãããŸãã ãã®çµæãDocker Hub ã®ã€ã¡ãŒãžã«ã¯ redislabs/redismod ãæ¬¡ã® 7 ã€ã®å
¬åŒã¢ãžã¥ãŒã«ããã³ãã«ãããŠããŸããÂ
- ã¬ãã£ã¹ãã«ãŒã
- ãªãã£ã¹ã¿ã€ã ã·ãªãŒãº
- RedisJSON
- ãªãã£ã¹AI
- ãªãã£ã¹ã°ã©ã
- ã¬ãã£ã¹ã®ã¢ã¹
- ã¬ãã£ãµãŒã
ãã®ã³ã³ãããèµ·åããŠå®éšãããå Žåã¯ãã¿ãŒããã«ã«å
¥å docker run -d -p 6379:6379 redislabs/redismod ããã ãã§ãã Dockerãã¹ã¯ããããéããŠãåã«è¡ã£ãããã«ãã®ã³ã³ããã衚瀺ã§ããŸããÂ
Redis ã®ãã¥ã¬ãŒã·ã§ã³ããã ã¢ãžã¥ãŒã«ã衚瀺ãããã Redis ã¢ãžã¥ãŒã« ãã ã«ã¢ã¯ã»ã¹ããŠããã«è©³ãã調ã¹ãããšãã§ããŸãã
ä»ããRedisã䜿ãå§ããŸããã
Redis ãæ£åžžã« Dockerize ããæ¹æ³ã«ã€ããŠèª¬æããŸããã ããã«é²ãã§ãå€éšæ§æãååŸããŠãRedisã®åäœããã®å Žã§å€æŽããã®ã¯ç°¡åã§ãã ããã«ãããRedis ãã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ããæ¹æ³ã®å¶åŸ¡ãã¯ããã«ç°¡åã«ãªããŸãã Docker Hub ã«ã¢ã¯ã»ã¹ããŠãæåã® Redis Docker å ¬åŒã€ã¡ãŒãžã ãã«ããŠå®éšãéå§ããŠãã ãããÂ
Redis Stack ã¯ãDocker å ã§ Redis ãæ¡åŒµããã®ã«ã圹ç«ã¡ãŸãã ææ°ã®éçºè ãã¬ã³ããªãŒãªããŒã¿ã¢ãã«ãšåŠçãšã³ãžã³ã远å ããŸãã ãŸããStack ã䜿çšãããšããã«ããã¹ãæ€çŽ¢ãããã¥ã¡ã³ã ã¹ãã¢ãã°ã©ããæç³»åãããã³ç¢ºççããŒã¿æ§é ã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããŸãã Redis ã¯ãDocker æ€èšŒæžã¿çºè¡å (DVP) ããã°ã©ã ãéããŠé¢é£ãã ã³ã³ãã㌠ã€ã¡ãŒãž ãå ¬éããŠããŸãã ãããããã§ãã¯ããŠãã ãã!