[Redis] Cluster 구축 튜토리얼 - Step By Step Run Book

728x90
반응형
SMALL

Redis 구축 - 1개의 Instance Server로 구축

Master 3대, Slave 3대, Port 분리

 

Redis Directory 생성

 
cd /opt
mkdir redis

cd redis
mkdir cluster

cd cluster

Redis Install

 
curl -O http://download.redis.io/releasees/redis-5.0.7.tar.gz

tar xvf redis-5.0.7.tar.gz

Redis 컴파일 및 Config 파일 복사

 
cd /opt/redis/redis-5.0.7
make

cd /opt/redis
cp /opt/redis/redis-5.0.7/redis.conf /opt/redis/cluster/7006/redis.conf
cp /opt/redis/redis-5.0.7/redis.conf /opt/redis/cluster/7007/redis.conf
cp /opt/redis/redis-5.0.7/redis.conf /opt/redis/cluster/7008/redis.conf
cp /opt/redis/redis-5.0.7/redis.conf /opt/redis/cluster/7009/redis.conf
cp /opt/redis/redis-5.0.7/redis.conf /opt/redis/cluster/7010/redis.conf
cp /opt/redis/redis-5.0.7/redis.conf /opt/redis/cluster/7011/redis.conf

Redis Config Cluster 설정

 
vi /opt/redis/cluster/{port}/redis.conf
 
# loglevel
loglevel notice
 
 
# logfile name
logfile 'redis-{port}.log'
 
 
# 레디스 서버 background로 실행
daemonized yes
 
 
# working dir
dir /opt/redis/cluster
 
 
# bind IP
bind {IP}
 
 
# 보안 접속
protected-mode yes
 
 
# 레디스 서버 실행 방식
supervised no
 
 
# RDB X
save 관련 설정 주석 처리
 
 
# AOF X
appendonly no
 
 
# max memory
maxmemory 1gb
 
 
# cluster mode 사용
cluster-enabled yes
 
 
# cluster 상태를 기록하는 바이너리 파일
cluster-config-file nodes-{port}.conf
 
 
# 노드가 다운되었는지 판단하는 시간 : 3초
cluster-node-timeout 3000
 
 
# 일부 노드가 다운되어도 살아있는 노드는 사용할 수 있도록 설정
cluster-require-full-coverage yes

Redis Server 구동

 
/opt/redis/redis-5.0.7/src/redis-server /opt/redis/cluster/7006/redis.conf &
/opt/redis/redis-5.0.7/src/redis-server /opt/redis/cluster/7007/redis.conf &
/opt/redis/redis-5.0.7/src/redis-server /opt/redis/cluster/7008/redis.conf &
/opt/redis/redis-5.0.7/src/redis-server /opt/redis/cluster/7009/redis.conf &
/opt/redis/redis-5.0.7/src/redis-server /opt/redis/cluster/7010/redis.conf &
/opt/redis/redis-5.0.7/src/redis-server /opt/redis/cluster/7011/redis.conf &

Redis Cluster 생성

 
/opt/redis/redis-5.0.7/src/redis-cli --cluster create {IP}:7006 {IP}:7007 {IP}:7008 {IP}:7009 {IP}:7010 {IP}:7011 --cluster-replicas 1 

Test

 
ps -ef | grep redis

/opt/redis/redis-5.0.7/src/redis-cli -h {IP} -c -p 7006

Redis Stat Install (Monitoring)

 
apt-get install docker.io

docker ps -a
docker pull insready/redis-stat
docker run --name redis-stat -p 63790:63790 -d insready/redis-stat --server {IP}:7006 {IP}:7007 {IP}:7008 {IP}:7009 {IP}:7010 {IP}:7011
 
sudo docker ps

 

정리

실무에서는 개발용 환경에는 위처럼 Instance 1대에 Redis Cluster을 구성해서 사용했는데 문제없었다.

운영 환경에서는 총 6대의 Instance에 Redis Cluster 구성을 진행했다.

 

말 그대로 In-Memory Cache가 목적이기에 데이터 복구가 필요 없었고, 따라서 AOF, RDB 기능은 off로 설정해서 사용 중이다.

 

Maxmemory는 가능한 30% 정도 여유 메모리를 갖도록 운영이 필요하다고 해서 그렇게 설정했다.

ex) 시스템 메모리 16g 일 때, Redis Server가 12g 정도 사용 가능하도록 설정

 

아, 추가로 운영 환경에서는 Systemd 방식으로 Redis Server를 구동시켰다.

 

삽질을 좀 했지만 어찌 어찌 구현 했다.

 

728x90
반응형
LIST