目錄
配置redis主從複製
開始部署sentinel 節點
部署sentinel
啟動sentinel
示範下容錯移轉
配置redis主從複製
一個主節點(連接埠6379),兩個從節點(連接埠6380,6381),不會配置的請看我的上一篇redis主從複製的文章。
使用ping命令檢查是否啟動
redis-cli -h 127.0.0.1 -p 6379 ping
如下,返回PONG表示三個redis服務都已經啟動完成
一個主節點:
兩個從節點:
主節點查看連結資訊
查看6379的串連資訊命令:info replication可以發現6379的角色是master,有兩個從節點,也就是連接埠為6380,6381的從節點(redis)
同樣在6380 從節點中,該節點的角色是slave(從節點),與主節點的串連狀態為up(master_link_status),通過這個命令可以方便的查看各個節點的串連狀態等資訊。
除了用info replication命令外,如下命令也可以快速查看連結資訊redis-cli -h 127.0.0.1 -p 6381 info replication看個人喜好用哪個命令。
開始部署sentinel 節點
通過sentinel節點部署,可以使redis主從複置更加的高可用,那sentinel到底有什麼用呢,從字面意思就看出sentinel是“哨兵”的意思,也就是來監控redis節點的,被sentinel監控的redis節點是主節點,sentinel具有容錯移轉的功能,什麼是容錯移轉呢?當被sentinel監控的redis節點被意外中斷後,sentinel會自動的選擇一個角色為slave節點的redis為主節點,維護後續並保證正確的主從複製的關係,而原來的從節點還是從節點,不過它們的主節點變成新升級為主節點的redis服務。下面咱們就一步一步開始搭建sentinel。
部署sentinel
進入安裝redis的目錄下的配置目錄,我的本地是/etc/redis
我這邊就直接使用原本的sentinel.conf配置,來作為第一個sentinel節點。我們可以進入sentinel.conf配置看下裡面到底有啥配置資訊:sentinel monitor mymaster 127.0.0.1 6379 2 //監控的主節點IP和連接埠,其中mymaster是該節點的別名,2表示判斷主節點失敗至少需要兩個節點同意sentinel down-after-milliseconds mymaster 30000 //通過ping命令,各個sentinel節點向redis節點是否可達,超過30000毫秒,就判定不可達sentinel failover-timeout mymaster 180000 //容錯移轉逾時時間為180000毫秒如果還有其它的配置,可以自己在探索下
啟動sentinel
啟動命令:sudo redis-sentinel sentinel.conf --sentinel
查看sentinel啟動情況redis-cli -h 127.0.0.1 -p 26379 INFO Sentinel可以看出與查看redis啟動的情況命令類似,中可以看到此時sentinel監控redis節點是連接埠為6379的服務,6379有兩個從節點,狀態為OK,別名是mymaster
繼續再配置兩個sentinel節點,sudo cp sentinel.conf sentinel2.conf sudo cp sentinel.conf sentinel3.conf 修改兩個配置的連接埠為26380, 26381,其它配置可以不用修改修改完後,分別啟動sudo redis-sentinel sentinel2.conf --sentinelsudo redis-sentinel sentinel3.conf --sentinel
啟動後再次查看sentinel.conf的配置,可以發現配置中多了兩個從節點的資訊,如下:
示範下容錯移轉
查看當前sentinel監控的節點資訊
查看26379連接埠的Sentinel節點監控的主節點資訊
查看目前redis的進程ps -ef | grep redis
中斷redis的主節點
之前我們sentinel監控的主節點是6379這個連接埠,這時候我們kill這個連接埠的進程,或者使用shutdown命令:redis-cli -h 127.0.0.1 -p 6379 shutdown過了30秒之後查看26379連接埠的Sentinel節點監控的主節點資訊,發現主節點資訊變成了6380連接埠的redis(之前的從節點)
驗證redis的主節點是否改變
驗證6380連接埠的redis變成主節點,此時我們在6380 的redis上設定一個key值,在6381連接埠的redis上驗證是否能擷取到該key值
此時發現,6380變成了主節點,6381從節點沒有變化,還是從節點。下面我再次啟動6379連接埠的redis
發現原先的主節點6379已經變成了從節點,而它的主節點變成了6380。此時我們再回過頭看下26379的監控節點變化,還是6380連接埠。
至此sentinel介紹就講完了,不足之處歡迎指正。