https://github.com/joyieldInc/predixy
GitHub - joyieldInc/predixy: A high performance and fully featured proxy for redis, support redis sentinel and redis cluster
A high performance and fully featured proxy for redis, support redis sentinel and redis cluster - joyieldInc/predixy
github.com
predixy
redis cluster 및 sentinel 을 위한 프록시
1. 설치
git clone https://github.com/joyieldInc/predixy
cd predixy
make
cp src/predixy /path/to/bin
predixy -h
2. predixy 구성도
(predixy 가 key 에 맞는 레디스 서버로 알아서 접근)
3. conf 설정 (predixy)
(predixy/conf)
cluster.conf
## Examples:
ClusterServerPool {
MasterReadPriority 60
StaticSlaveReadPriority 50
DynamicSlaveReadPriority 50
RefreshInterval 1
ServerTimeout 1
ServerFailureLimit 10
ServerRetryTimeout 1
KeepAlive 120
Servers {
+ ip:6300
+ ip:6300
+ ip:6300
+ ip:6400
+ ip:6400
+ ip:6400
}
}
4. redis conf 설정
(/etc/redis)
# 두개 생성
redis_master_6300.conf
redis_slave_6400.conf
port 각자포트
# port 6300 port 6400
bind 0.0.0.0
daemonize yes
cluster-enabled yes
cluster-config-file nodes-[각자포트].conf
# cluster-config-file nodes-6300.conf cluster-config-file nodes-6400.conf
cluster-node-timeout 3000
pidfile /var/run/redis/redis_[각자포트].pid
# /var/run/redis/redis_6300.pid /var/run/redis/redis_6400.pid
logfile /var/log/redis/redis_[각자포트].log
# /var/log/redis/redis-master-6300.log /var/log/redis/redis-master-6400.log
5. systemd (redis-master, redis-slave)
( /etc/systemd/system )
# redis-master.service
# redis-slave.service
# master
[Unit]
Description=Redis Master Node
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/bin/redis-server /etc/redis/redis_master_6300.conf
TimeoutStopSec=0
Restart=always
RuntimeDirectory=redis
RuntimeDirectoryMode=2755
Type=forking
[Install]
WantedBy=multi-user.target
# slave
[Unit]
Description=Redis Slave Node
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/bin/redis-server /etc/redis/redis_slave_6400.conf
TimeoutStopSec=0
Restart=always
RuntimeDirectory=redis
RuntimeDirectoryMode=2755
Type=forking
[Install]
WantedBy=multi-user.target
6. cluster (redis-cli)
# master node 생성 (최소 3개 필요)
redis-cli --cluster create ip:6300 ip:6300 ip:6300
# cluster
redis-cli --cluster add-node ip:6400 ip:6300
redis-cli --cluster add-node ip:6400 ip:6300
redis-cli --cluster add-node ip:6400 ip:6300
# 참고
# Reset cluster
# master
redis-cli --cluster call ip:6300 flushall
redis-cli --cluster call ip:6300 cluster reset
redis-cli --cluster call ip:6300 flushall
redis-cli --cluster call ip:6300 cluster reset
redis-cli --cluster call ip:6300 flushall
redis-cli --cluster call ip:6300 cluster reset
# slave
redis-cli --cluster call ip:6400 cluster reset
redis-cli --cluster call ip:6400 cluster reset
redis-cli --cluster call ip:6400 cluster reset
'Database > Redis' 카테고리의 다른 글
[Redis] cluster (Waiting for the cluster to join) (0) | 2024.10.17 |
---|