Posted on

Redis Sentinel

Sentinel特性

Redis Sentinel為Redis提供高可用性。實際上,這意味著使用Sentinel可以創建Redis部署,該部署可以在沒有人工干預的情況下抵抗某些類型的故障。

Redis Sentinel還提供其他附帶任務,例如監視,通知,並充當客戶端的配置提供程序。

這是宏觀上Sentinel功能的完整列表(即,大圖):

監控。Sentinel會不斷檢查您的主實例和副本實例是否按預期工作。
通知。Sentinel可以通過API通知系統管理員或其他計算機程序,其中一個受監視的Redis實例出了問題。
自動故障轉移。如果主服務器未按預期工作,則Sentinel可以啟動故障轉移過程,在該過程中將副本升級為主服務器,將其他附加副本重新配置為使用新的主服務器,並通知使用Redis服務器的應用程序要使用的新地址。連接時。
配置提供程序。Sentinel充當客戶端服務發現的授權來源:客戶端連接到Sentinels,以詢問負責給定服務的當前Redis主服務器的地址。如果發生故障轉移,Sentinels將報告新地址。

Redis Sentinel是一個分佈式系統:

Sentinel本身設計為在有多個Sentinel進程協同合作的配置中運行。具有多個Sentinel進程進行協作的優點如下:

當多個哨兵就給定的主機不再可用這一事實達成共識時,將執行故障檢測。這降低了誤報的可能性。
即使不是所有的Sentinel進程都在工作,Sentinel仍能正常工作,從而使系統能夠應對故障。畢竟,擁有故障轉移系統本身就是一個單點故障,這沒有任何樂趣。

更多介紹

請見https://redis.io/topics/sentinel

連接至Redis Sentinel

  • 使用redis-cli連接至redis: redis-cli -h redis.test -p 26379
  • 認證: AUTH my_password
  • ping一個: ping
  • 查看redis相關資料: sentinel master myDBName

這時候可以看到Sentinel真正所使用的port,然後就可得知這是真正要連接的redis的port

如何瀏覽Redis裡的資料

下載客戶端工具: Redis Desktop Manager

Name: 連線名稱(自己取)
host: 打上Redis主機的IP或FQDN
port: 打上redis所使用的port
Auth: 如果有填則會做認證

按下Test Connection就可以測試連線
如果Test Connection成功而瀏覽資料失敗的話,很可能是因為該port並不是給看資料用的,可以用console打info,用command line去確認相關資訊