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
'Develope > Cache' 카테고리의 다른 글
[Redis] Tuning - 간단한 튜닝을 해보자! (0) | 2021.01.17 |
---|---|
[Redis] Redis Monitoring - 모니터링 툴 소개 (0) | 2021.01.17 |
[Redis] redis-cli 명령어 모음 (0) | 2021.01.17 |
[Redis] AOF vs RDB - Redis 메모리 관리 방식 비교 (0) | 2021.01.17 |
[Redis] Redis의 다양한 모드 : Cluster, Sentinel, Single (0) | 2021.01.17 |