在CentOS上配置Redis哨兵模式需要以下幾個步驟:
首先,確保你已經在CentOS上安裝了Redis。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum install epel-release
sudo yum install redis
為每個Redis實例創建配置文件。假設你有三個Redis實例,分別命名為redis-master、redis-slave1和redis-slave2。
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile /var/log/redis/redis_6379.log
dir /var/lib/redis/6379
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
logfile /var/log/redis/redis_6380.log
dir /var/lib/redis/6380
slaveof 127.0.0.1 6379
啟動每個Redis實例:
sudo redis-server /etc/redis/redis-master.conf
sudo redis-server /etc/redis/redis-slave1.conf
sudo redis-server /etc/redis/redis-slave2.conf
創建哨兵配置文件sentinel.conf:
port 26379
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile /var/log/redis/sentinel.log
dir /var/lib/redis-sentinel
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
解釋:
sentinel monitor mymaster 127.0.0.1 6379 2:監控名為mymaster的主節點,地址為127.0.0.1,端口為6379,至少需要2個哨兵同意主節點失效才會進行故障轉移。sentinel down-after-milliseconds mymaster 5000:主節點在5秒內沒有響應則認為其下線。sentinel failover-timeout mymaster 60000:故障轉移的超時時間為60秒。sentinel parallel-syncs mymaster 1:故障轉移時,最多允許1個從節點同時進行同步。啟動哨兵:
sudo redis-sentinel /etc/redis/sentinel.conf
你可以通過以下命令查看哨兵的狀態:
redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
如果配置正確,你應該能看到主節點的地址和端口。
為了測試故障轉移,你可以手動停止主節點:
sudo redis-cli -p 6379 shutdown
然后觀察哨兵日志和從節點是否自動升級為主節點。
通過以上步驟,你就可以在CentOS上成功配置Redis的哨兵模式。