集群目標
主從復制,讀寫分離;故障切換(通過哨兵實現)
查看集群狀態
info replication
配置方法
只設置從數據庫就可以了;最佳實踐,在主數據庫配置masterauth <master-password>,這樣在主庫掛了后又重啟狀態就不會是down
配置過程
注意,要求主從數據庫的密碼一致,哨兵要求
1、配置文件方式
slaveof <master ip> <masterport> 主庫的ip和端口
masterauth <master-password> 主庫的密碼
slave-read-only yew 從庫只讀,默認
2、命令行方式
slaveof host port 將當前庫設置為host、port對應的實例的從庫
config set masterauth <master-password>
config rewrite
slaveof no one 取消當前庫的從庫身份,已同步的數據保留
config rewrite
哨兵配置(實現故障切換)
port 26379 // 哨兵端口號
protected-mode no // 允許其它ip訪問
dir /tmp
sentinel monitor mymaster 192.168.1.200 6379 1 // 主數據庫名字、ip、端口、幾個哨兵認為主數據庫掛了就掛了;從節點不需要指定,sentinel會自動識別
sentinel auth-pass mymaster 12345 // 主從庫密碼
sentinel down-after-milliseconds mymaster 30000 // 判定下線時間
sentinel failover-timeout mymaster 180000 // 故障遷移時間
啟動哨兵
./src/redis-server sentinel.conf --sentinel
哨兵要求主從節點的密碼是相同的
一般會配置多個哨兵,防止哨兵誤判,比如它自己的網絡有問題
多個哨兵不需要多個redis軟件,只要添加多個sentinel.conf,啟動哨兵時后面跟上不同的配置文件即可
哨兵需要提供對外的接口,master、slave都不需要對外提供接口,master和slave都是由哨兵來統一管理