首頁  >  文章  >  後端開發  >  redis詳解之sentinel介紹

redis詳解之sentinel介紹

无忌哥哥
无忌哥哥原創
2018-07-12 09:55:163303瀏覽

目錄

  • 設定redis主從複製

    • #使用ping指令檢查是否啟動

    • 主節點查看連結資訊

  • 開始部署sentinel 節點

  • 部署sentinel

  • ##啟動sentinel

  • 示範下故障轉移

    • 查看目前sentinel監控的節點資訊

    • 中斷redis的主節點

    • 驗證redis的主節點是否改變

    • 至此sentinel介紹就講完了,不足之處歡迎指正。

設定redis主從複製

一個主節點(埠6379),兩個從節點(埠6380,6381),不會配置的請看我的上一篇redis主從複製的文章。

使用ping指令檢查是否啟動

redis-cli -h 127.0.0.1 -p 6379 ping

如下,回傳PONG表示三個redis服務都已經啟動完成

一個主節點:


redis詳解之sentinel介紹

兩個從節點:


redis詳解之sentinel介紹

redis詳解之sentinel介紹##主節點查看連結資訊

查看6379的连接信息
命令:info replication
可以发现6379的角色是master,有两个从节点,也就是端口为6380,6381的从节点(redis)

同样在6380 从节点中,该节点的角色是slave(从节点),与主节点的连接状态为up(master_link_status),通过这个命令可以方便的查看各个节点的连接状态等信息。
redis詳解之sentinel介紹

#

除了用info replication命令外,如下命令也可以快速查看链接信息
redis-cli -h 127.0.0.1 -p 6381 info replication
看个人喜好用哪个命令。
redis詳解之sentinel介紹

##開始部署sentinel 節點redis詳解之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毫秒
如果还有其它的配置,可以自己在探索下

啟動sentinelredis詳解之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

redis詳解之sentinel介紹

继续再配置两个sentinel节点,
sudo cp sentinel.conf  sentinel2.conf 
sudo cp sentinel.conf  sentinel3.conf 
修改两个配置的端口为26380, 26381,其它配置可以不用修改
修改完后,分别启动
sudo redis-sentinel sentinel2.conf --sentinel
sudo redis-sentinel sentinel3.conf --sentinel

redis詳解之sentinel介紹

启动后再次查看sentinel.conf的配置,可以发现配置中多了两个从节点的信息,截图如下:

redis詳解之sentinel介紹

redis詳解之sentinel介紹

#示範下故障轉移redis詳解之sentinel介紹

查看目前sentinel監控的節點資訊

查看26379端口的Sentinel节点监控的主节点信息

查看目前redis的进程ps -ef | grep redis

redis詳解之sentinel介紹

#中斷redis的主節點redis詳解之sentinel介紹

之前我们sentinel监控的主节点是6379这个端口,这时候我们kill这个端口的进程,或者使用shutdown命令:
redis-cli -h 127.0.0.1 -p 6379 shutdown
过了30秒之后查看26379端口的Sentinel节点监控的主节点信息,发现主节点信息变成了6380端口的redis(之前的从节点)

驗證redis的主節點是否改變redis詳解之sentinel介紹

验证6380端口的redis变成主节点,此时我们在6380 的redis上设置一个key值,在6381端口的redis上验证是否能获取到该key值

此时发现,6380变成了主节点,6381从节点没有变化,还是从节点。
下面我再次启动6379端口的redis

redis詳解之sentinel介紹

#
发现原先的主节点6379已经变成了从节点,而它的主节点变成了6380。此时我们再回过头看下26379的监控节点变化,还是6380端口。

redis詳解之sentinel介紹

redis詳解之sentinel介紹#至此sentinel介紹就講完了,不足之處歡迎指正。

以上是redis詳解之sentinel介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn