精神小伙 在线背锅redis
Redis 主从在线切换记录bash
Redis master 所在实例主机须要下线维护. 如何切换主从对线上影响最小. 当前架构以下图 架构
引入 redis sentinel.ui
直接切换spa
redis-cli -h redis-slave -p 6379 CONFIG set slave-read-only no
redis-cli -h redis-slave -p 6379 slaveof no one
引入4层代理, haproxy3d
稳妥起见, 使用方案3.代理
引入 haproxy 后架构 code
执行主从切换cdn
export redis-slave=REDIS_SLAVE_IP
export redis-master=REDIS_MASTER_IP
# 从库可写
redis-cli -h redis-slave -p 6379 CONFIG set slave-read-only no
# 修改 haproxy 配置
sed -i 's/redis-master/redis-slave/g' haproxy.cfg
# reload haproxy
haproxy -f haproxy.cfg -p /tmp/haproxy.pid -sf `cat /tmp/haproxy.pid`
# 肯定主从同步结束
redis-cli -h redis-slave -p 6379 info | grep master_sync_in_progress
# 值需为0
# 中止主从同步
redis-cli -h redis-slave -p 6379 slaveof no one
# 创建新主从
redis-cli -h redis-master -p 6379 slaveof redis-slave 6379
# 肯定新主从同步结束
redis-cli -h redis-master -p 6379 info | grep master_sync_in_progress
# 值需为0
# 结束
复制代码
简单记录了 Redis 主从切换的取舍和操做.中间件