精神小夥 在線背鍋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 主從切換的取捨和操做.中間件