티스토리 뷰

Installation Redis Cluster on Docker.

Docker를 이용하여 Cluster 모드를 간단히 설치 할 수 있다. 
Docker image를 다운받아 Cluster  & Replication을 손쉽게 구성할 수 있다.

기본 설치 환경

OS : OSX El Capitan

Docker : 1.10.0

Redis : 3.0.6


Docker가 준비되어있지 않다면 아래 URL을 참고 하도록 한다.

http://rocksea.tistory.com/338


docker-redis-cluster 내부 구성 

docker-redis-cluster를 이용하여 Cluster & Replication 설정이 구성된 상태의 Redis를 실행할 수 있다.  이미지 내의 실행 커맨드를 확인해 보면 총 3개의 cluster와 각각의 노드별 3개의 replication 설정으로 구성되어 있다.

/redis/src/redis-trib.rb create --replicas 1 ${IP}:7000 ${IP}:7001 ${IP}:7002 ${IP}:7003 ${IP}:7004 ${IP}:7005


[그림 1] Redis Node 구성


시작 환경이 준비가 되었다면  아래 단계로 설치 및 테스트를 진행한다.

step 1. Redis-Cluster Docker Image 다운로드

$ docker pull grokzen/redis-cluster:3.0.6


step 2. Run Redis-Cluster Container 생성 및 실행

$ docker run -i -t grokzen/redis-cluster:3.0.6


step 3. Redis Client  Cluster Mode 실행

-c 옵션값을 추가하고 실행해야 cluster 내의 분산저장된 값을 조회할 수 있다.

$ docker exec -it ${ContainerID} /redis/src/redis-cli -c -p 7000


step 4. Set Key Value

이제 key & valaue 데이터를 저장하는 과정을 진행한다. Cluster에 값을 저장할때 slots range에 따라 각 Redis 서버에 분산되어 저장된다.

127.0.0.1:7000> cluster slots

1) 1) (integer) 0

   2) (integer) 5460

   3) 1) "172.17.0.3"

      2) (integer) 7000

   4) 1) "172.17.0.3"

      2) (integer) 7003

2) 1) (integer) 10923

   2) (integer) 16383

   3) 1) "172.17.0.3"

      2) (integer) 7002

   4) 1) "172.17.0.3"

      2) (integer) 7005

3) 1) (integer) 5461

   2) (integer) 10922

   3) 1) "172.17.0.3"

      2) (integer) 7001

   4) 1) "172.17.0.3"

      2) (integer) 7004


127.0.0.1:7000> set rocksea1 a

-> Redirected to slot [5593] located at 172.17.0.3:7001

OK

172.17.0.3:7001> set rocksea2 b

OK

172.17.0.3:7001> set rocksea3 c

-> Redirected to slot [13723] located at 172.17.0.3:7002

OK

172.17.0.3:7002> set rocksea4 d

-> Redirected to slot [1404] located at 172.17.0.3:7000

OK

172.17.0.3:7000> set rocksea5 e

-> Redirected to slot [5469] located at 172.17.0.3:7001

OK

172.17.0.3:7001> set rocksea6 f

OK

172.17.0.3:7001> set rocksea7 g

-> Redirected to slot [13599] located at 172.17.0.3:7002

OK


Reference URL :

http://www.redis.io/topics/cluster-tutorial

https://github.com/Grokzen/docker-redis-cluster

http://the-earth.tistory.com/entry/redis-cluster-구성하기

http://www.redisgate.com/redis/cluster/redis-trib.php

http://redis.io/commands/cluster-slots

댓글