redis를 사용하면서 cluste로 구성해봐야하는 일이 있었다.

그래서 찾아보던 중 redis문서에서 방법을 찾았다. https://redis.io/topics/cluster-tutorial

 

Redis cluster tutorial – Redis

*Redis cluster tutorial This document is a gentle introduction to Redis Cluster, that does not use complex to understand distributed systems concepts. It provides instructions about how to setup a cluster, test, and operate it, without going into the detai

redis.io

따라서 구성해보자.

 

redis 다운로드

https://redis.io/download

 

다운 받고 압축을 풀고 make, make install 명령어를 사용해서 빌드한다.

tar xvfz redis-5.0.4
cd redis-5.0.4
make
make install

 

redis 클러스터 생성

redis 클러스터 구성을 위해서는 다음과 같이 6개의 노드가 필요하다. 이유는 아래의 내용과 같다.

** ERROR: Invalid configuration for cluster creation.** Redis Cluster requires at least 3 master nodes.
** This is not possible with 2 nodes and 1 replicas per node.** At least 6 nodes are required.

 

그럼 각 노드 생성을 위해서 필요한 설정을 담을 cluster-test 폴더를 먼저 만들자.

그리고 6700 ~ 6705까지의 폴더를 만든다.

jeongcheol-ui-MacBookPro:redis-5.0.4 wedul$ mkdir cluster-test
jeongcheol-ui-MacBookPro:redis-5.0.4 wedul$ cd cluster-test
jeongcheol-ui-MacBookPro:cluster-test wedul$ mkdir $(seq 6700 6705)
jeongcheol-ui-MacBookPro:cluster-test wedul$ ls
6700	6701	6702	6703	6704	6705

그리고 src 폴더에 make를 통해 생성된 redis-server 파일을 모든 폴더에 넣어주고 다음 설정이 들어간 redis.conf 파일까지 같이 넣어준다.

port 6700
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

그럼 모든 서버를 실행시켜보자.

./redis-server redis.conf &

이제 6개의 인스턴스가 실행중인것을 확인 할 수 있다. 그럼 이 인스턴스를 특별한 설정을 통해 cluster를 구성해야한다.

cluster설정은 redis 3, 4에서는 redis-trib.rb를 사용했지만 5부터는 redis-cli에 다 포함되어 있다.

그럼 아래 명령어를 사용해서 cluster를 구성해보자.

redis-cli --cluster create 127.0.0.1:6700 127.0.0.1:6701 127.0.0.1:6702 127.0.0.1:6703 127.0.0.1:6704 127.0.0.1:6705 --cluster-replicas 1

여기서 사용된 cluster-replicas는 각 인스턴스의 replica 노드를 하나씩 구성하겠다는 뜻으로 마스터노드 3개 slave노드 3개가 만들어진다.

그러면 아래 보는것과 같이 서버가 3대 3대로 마스터와 슬레이브가 구성이되고 yes를 누르면 그에 맞게 클러스터가 구성된다.

 

그럼 이렇게 구성된 클러스터를 사용해서 redis에 접속해보자.

cluster모드에 redis 접속을 위해서는 -c 옵션을 달아서 실행시킨다.

 

이렇게 레디스의 클러스터를 구성해봤다.

이를 사용해서 이제 업무에 적용해보자.

+ Recent posts