redis를 사용하면서 cluste로 구성해봐야하는 일이 있었다.
그래서 찾아보던 중 redis문서에서 방법을 찾았다. https://redis.io/topics/cluster-tutorial
따라서 구성해보자.
redis 다운로드
다운 받고 압축을 풀고 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 옵션을 달아서 실행시킨다.
이렇게 레디스의 클러스터를 구성해봤다.
이를 사용해서 이제 업무에 적용해보자.
'데이터베이스 > Nosql' 카테고리의 다른 글
Line 세미나. Redis Pub/Sub을 사용해 대규모 사용자에게 고속으로 설정 정보를 배포한 사례 (0) | 2021.11.14 |
---|---|
Redis Cluster mode에서 mget, mset, pipeline과 같은 멀티 키 명령어 사용하기. (0) | 2019.05.13 |
[번역] Redis partitioning (0) | 2019.03.06 |
Redis Keys 명령어의 대체 Scan 설명 (0) | 2018.10.06 |
Docker에 MongoDB 설치 후 Studio 3T로 접속해서 쿼리 사용해보기 (0) | 2018.10.04 |