Redis Cluster

Redis Cluster slave 重做

redis 集群

redis cluster 采用的是去中心化的设计,方便集群在后续的扩展,在部署 redis cluster 时至少采用三节点。redis.conf 关键配置如下:

bind 127.0.0.1
protected-mode no
port 7001
daemonize yes
supervised no
pidfile /var/run/redis_7001.pid
dbfilename dump.rdb
dir ./7001
slave-serve-stale-data yes
slave-read-only yes
cluster-config-file nodes-7001.conf

集群节点信息如下:

src/redis-cli -p 7001 -c cluster nodes                                                                                                                                exit 130
27bfaf0b8cb5ff4fe6d4c8f17e59cf024a286ab7 127.0.0.1:7005 slave 95e3317fbdaeea8d46703ea9e1b251d0394beab0 0 1673339373594 5 connected
1df16461f2c662c9900ab743f2f74d656c7d9dd6 127.0.0.1:7001 myself,master - 0 0 1 connected 0-5460
415826dcc030512cd2e2b23cff2b5afaa7aafae3 127.0.0.1:7004 slave a8cf5cc12aef151a50f1a8dffd237cded89320eb 0 1673339371591 6 connected
a8cf5cc12aef151a50f1a8dffd237cded89320eb 127.0.0.1:7003 master - 0 1673339367586 3 connected 10923-16383
95e3317fbdaeea8d46703ea9e1b251d0394beab0 127.0.0.1:7002 master - 0 1673339372593 2 connected 5461-10922
c62bc2d98de94ef0435b8ee31181d988c0f8c39d 127.0.0.1:7006 slave 1df16461f2c662c9900ab743f2f74d656c7d9dd6 0 1673339368087 4 connected

优化策略

采用 3 节点的 3 主 3 从部署时,切记保证主从不要设置在同一节点上,以免发生节点宕机时 redis 分片数据丢失的情况,当主从在同一节点时需要将 slave 节点摘除之后重做。具体流程如下:

# step 1 备份
# 先停止 redis 服务
rsync -av 7005 7005-bk
rsync -av 7006 7006-bk

# step 2 删除从节点
src/redis-trib.rb del-node 127.0.0.1:7001 afdfaf0b8cb5ff4fe6d4c8f17e59cf024a286ab7
src/redis-trib.rb del-node 127.0.0.1:7001 d22826dcc030512cd2e2b23cff2b5afaa7aafae3

# step 3 删除本地数据
rm -rm 7005/*.rdb 7005/nodes*conf
rm -rm 7006/*.rdb 7005/nodes*conf

# step 4 启动 redis 服务并重新加入集群
redis-server 7005/redis.conf
redis-server 7006/redis.conf
src/redis-trib.rb add-node --slave --master-id 95e3317fbdaeea8d46703ea9e1b251d0394beab0 127.0.0.1:7005 127.0.0.1:7001
src/redis-trib.rb add-node --slave --master-id 1df16461f2c662c9900ab743f2f74d656c7d9dd6 127.0.0.1:7006 127.0.0.1:7001
Infee Fang
Infee Fang
互联网二手搬砖工