搭建好redis單機後,開始研究redis集羣配置redis
兩臺VM虛擬機,都安裝了redis程序,一臺做爲master 一臺做爲slave.net
首先配置redis主從配置日誌
配置在redis.conf文件中server
主機上須要設置masterauth(光主從同步不須要配置這個,可是後續配置哨兵機制的時候須要配置這個屬性)blog
從機上須要配置slaveof 主機IP 主機端口,一樣也許配置masterauth,密碼和主機同樣進程
啓動主機,啓動從機get
在主機上set key value後同步
在從機上get key 虛擬機
能正常獲得主機設置的值it
可是要實現主從容錯自動切換,就須要配置redis哨兵,
redis-sentinel 是一個守護進程,做用有,監控,管理主從機,通知,主從切換功能
首先設置主機sentinel.conf
sentinel monitor mymaster 127.0.0.1 6379 1
這句話的意思是監控集羣名爲mymaster的主機IP,端口,最後一個數字表示,當有幾臺哨兵監控到主機出錯後執行主從切換
sentinel auth-pass mymaster 密碼
這個密碼須要和redis.conf中的masterauth一致
sentinel down-after-milliseconds mymaster 15000
這個配置設置的是當哨兵每秒對mymaster主機執行Ping操做時,超過15000毫秒後認爲主機宕機
sentinel failover-timeout mymaster 900000
和當主從切換多久後認爲主從切換失敗
sentinel leader-epoch mymaster 1
sentinel config-epoch mymaster 1
這兩個配置後面的數量主從機須要同樣
請注意,當主機啓動過redis-sentinel 後,哨兵會根據各叢機配置自動查找叢機,會在主機的sentinel.conf文件中自動生成叢機IP,因此不須要將全部叢機IP 列出來
當啓動過redis-sentinel時,會在主機sentinel.conf和從機sentinel.conf中生成myid,建議重啓redis-sentinel時將兩個sentinel.conf中生成的myid刪除,否則主從切換時,會根據myid去找對應的從機,當新生成的myid和原來的myid不一致,將沒法切換
設置從機sentinel.conf
和主機的sentinel.conf保持一致,
先啓動主機redis-server ,在啓動從機redis-server,再啓動主機redis-sentinel 再啓動從機redis-sentinel
將主機master的進程殺掉,能夠看到下圖的日誌,右邊爲主機,左邊爲從機
原文:https://blog.csdn.net/wyyanhxbl/article/details/52367630?utm_source=copy