설치 전 준비사항
- 최소 2개 이상의 서버 (또는 VM)에 CentOS 7 설치. 아래의 설명에 사용된 서버들 정보는 아래와 같습니다.
- Server A: 192.168.2.105
- Server B: 192.168.3.105
- Server C: 192.168.3.102
- Redis 3.0 이상 버전의 패키지를 인터넷에서 다운 받아서 설치. 참고로 Redis Cluster는 3.0 이상 버전부터 지원
가능합니다. 아래는 레디스 3.0.0을 다운 받아서 설치하는 명령어의 예이며 만약 더 최신 버전을 원하시면
http://download.redis.io/releases 페이지에 들어가셔서 최신 패키지 정보를 얻으셔서 다운 받으시면
됩니다.
- mkdir build && cd build
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
tar -xvfz redis-3.0.0.tar.gz
cd redis-3.0.0/
- 아래의 패키지들을 yum을 이용해서 설치
- yum install gem ruby ruby-devel ruby gems redis-stat rpm-build
설치 단계
- Redis Cluster용 설정파일 생성
- 기존의 설정파일인 ‘redis.conf’를 수정해서 사용해도 되나 우선 불필요한 설정들도 많고 Redis를 한 서버에서만 사용하게
되면 (클러스터 모드가 아닌) 다시 수정을 해야 하기 때문에 클러스터용 설정 파일을 새로 생성해서 사용하는게 좋습니다. (예를
들어 파일명은 ‘redis-cluster.conf’) 클러스터용 설정 파일의 예는 아래와 같습니다.
port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
append only yes
- 위의 설정파일을 이용해서 Redis Server 시작. 만약 클러스터 모드로 정상적으로 시작되었다면 서버 시작 후에 ‘Running in cluster mode’라는 글을 확인할 수 있습니다.
- src/redis-server redis-cluster.conf
- 위의 두 사항을 클러스터에 포함될 다른 서버들에 반복해서 수행합니다.
- 위의 과정을 거쳐 클러스터 모드로 시작된 Redis Server들을 아래의 명령어 실행을 통해 연결합니다. 참고로 이
과정은 하나의 서버에서만 수행하면 됩니다. 예를 들어 클러스터를 형성할 서버 A, B, C가 있다고 가정하면 A에서만 아래의
명령어를 실행하면 클러스터가 바로 형성되기 때문에 같은 작업을 B랑 C에서 반복적으로 할 필요가 없습니다.
- src/redis-cli -p 6379 CLUSTER MEET 192.168.3.105 6379
- 참고로 위의 명령어는 서버 B의 IP가 192.168.3.105 이고 서버 A에서 클러스터를 형성한 경우의 예입니다.
- ‘redis-trib.rb’라는 Redis 패키지에서 제공하는 유틸리티 프로그램을 이용해서 아래의 명령어를 실행해서 slot들을
할당합니다. 참고로 이 절차는 총 16384개의 슬롯을 오픈하고 오픈된 슬롯들을 클러스터 서버에 N 등분 해서 (여기서 N은
클러스터에 등록된 서버수) 할당하는 과정입니다.
- src/redis-trib.rb create 192.168.2.105:6379 192.168.3.105:6379
- 만약 5번 실행 중 문제가 발생했다면 아래의 명령어들을 서버 A에서 실행해보세요.
- for slot in {0..5400}; do redis-cli -h 192.168.2.105 -p 6379 CLUSTER ADDSLOTS $slot; done;
- for slot in {5400..10800}; do src/redis-cli -h 17.198.30.160 -p 6379 CLUSTER ADDSLOTS $slot; done;
- for slot in {10801..16383}; do src/redis-cli -h 17.198.30.157 -p 6379 CLUSTER ADDSLOTS $slot; done;
- References
- http://redis.io/topics/cluster-tutorial
- https://www.digitalocean.com/community/tutorials/how-to-configure-a-redis-cluster-on-centos-7
- https://www.javacodegeeks.com/2015/09/redis-clustering.html
- https://ilyabylich.svbtle.com/redis-cluster-quick-overview
Redis 설치
- Redis 설치 전에 필요한 패키지
- 가장 최신 버전의 Redis 다운로드 및 컴파일
- $ wget http://download.redis.io/redis-stable.tar.gz
- $ tar xvzf redis-stable.tar.gz
- Redis 서버 시작
- 기본 설정을 이용한 서버 시작: 간단한 테스트나 개발 환경에서만 사용을 추천하며 프로덕션 레벨에서의 사용은 추천하지 않습니다.
- 설정파일과 함께 서버 시작: 설정 파일은 보통 Redis를 설치한 폴더에 포함이 되어 있습니다. 예를 들어 '/opt' 폴더에 설치했을 때는 '/opt/redis-stable/redis-conf'와 같은 형태로 포함해야 합니다.
- $ redis-server ../redis-stable/redis-conf
- Redis 패키지와 함께 제공되는 클라이언트 프로그램을 이용한 간단한 테스트
- $ src/redis-cli
- 127.0.0.1:6379>ping
- PONG
- 127.0.0.1:6379> set foo bar
- OK
- 127.0.0.1:6379> get foo
- "bar"
- Sources:
- http://redis.io/download
- http://briansnelson.com/How_to_install_Redis_on_a_Centos_6.4_Server
- http://blog.andolasoft.com/2013/07/how-to-install-and-configure-redis-server-on-centosfedora-server.html