承接上一博客,配置兩個從 redis6380和redis6381,一個主 redis。機器環境是win10
配置哨兵
實際環境,每個服務器有一個哨兵,例如:n臺服務器,每臺服務器4個redis實例,那麼哨兵數量爲n,並不是4n。當前爲測試哨兵,只有一個機器,所以每個redis一個哨兵。
1.在redis、redis6380、redis6381下面分別建立sentinel.conf文件
#當前Sentinel服務運行的端口
port 26379
#Sentinel去監視一個名爲mymaster的主redis實例,這個主實例的IP地址爲本機地址127.0.0.1,端口號爲6379
sentinel monitor mymaster 127.0.0.1 6379 1
#指定了Sentinel認爲Redis實例已經失效所需的毫秒數。當 實例超過該時間沒有返回PING,或者直接返回錯誤,那麼Sentinel將這個實例標記爲主觀下線。
sentinel down-after-milliseconds mymaster 3000
這個是master的sentinel.conf,兩個master的sentinel.conf文件除了port其他配置文件,他們的port分別爲26380、26381
測試
1.打開三個doc窗口,分別進入redis、redis6380、redis6381目錄,輸入命令,啓動redis
redis-server.exe redis.windows.conf
2.把 redis6380 和 redis6381 設置爲從,redis設置爲主,對 redis6380 和 redis6381執行命令
slaveof 127.0.0.1 6379
3.打開哨兵,依舊在redis目錄下分別運行
redis-server.exe sentinel.conf --sentinel
運行後如下:
現在主是redis,我們關閉redis,來看看redis6380、redis6381以及哨兵的反應,對redis窗口ctrl +c
哨兵,6379關閉後 6381變成主:
redis6380,可以進行寫命令了,從是不可以寫的
redis6381,依舊不能寫
接下來重啓啓動6379端口,哨兵反應:
6379成爲了一個新的從,不可寫,6380和6381不變: