首頁 >資料庫 >Redis >詳解Redis哨兵模式

詳解Redis哨兵模式

藏色散人
藏色散人轉載
2020-09-15 09:20:382637瀏覽
##上建立中由

Redis教學專欄為大家介紹於關於java基於redis有序的集合實現排行榜,希望對需要的朋友有所幫助!

詳解Redis哨兵模式

哨兵是一個獨立的流程。

原理:
哨兵透過發送命令,等待Redis伺服器回應,從而監控運行的多個Redis實例。

詳解詳解Redis哨兵模式

哨兵的作用:

    透過傳送指令,讓Redis伺服器回傳監控其運作狀態,包括主伺服器和從伺服器。
  • 當哨兵監控到master宕機,會自動將slave切換成master,然後透過
  • 發布訂閱模式通知其他的從伺服器,修改設定文件,讓它們切換主機。
然而一個哨兵程序對Redis伺服器進行監控,可能會出現問題,為此,我們可以使用多個哨兵進行監控。各個哨兵之間還會進行監控,這樣就形成了多哨兵模式。

故障切換(failover)
假設主伺服器宕機,哨兵1先偵測到這個結果,系統並不會馬上進行failover過程,只是哨兵1主觀的認為主伺服器不可用,這個現象成為

主觀下線。當後面的哨兵也偵測到主伺服器不可用,數量達到一定值時,那麼哨兵之間就會進行一次投票,投票的結果由一個哨兵發起,進行failover操作。切換成功後,就會透過發布訂閱模式,讓各個哨兵把自己監控的從伺服器實作切換主機,這個過程稱為客觀下線。這樣對於客戶端而言,一切都是透明的。

設定哨兵模式

配置3個哨兵和1主2從的Redis伺服器來示範這個過程。


服務類型#是否是主伺服器IP位址#連接埠Redis是192.168.11.1286379#Redis否192.168.11.1296379RedisSentinelSentinelSentinel
##192.168.11.130 6379
- #192.168.11.128 # 26379
- #192.168.11.129 26379
- 192.168.11.130 #26379

詳解詳解Redis哨兵模式多重哨兵監控Redis

首先設定Redis的主從伺服器,修改redis.conf檔案如下

# 使得Redis服务器可以跨网络访问
bind 0.0.0.0# 设置密码
requirepass "123456"# 指定主服务器,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置
slaveof 192.168.11.128 6379# 主服务器密码,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置
masterauth 123456

上述內容主要是設定Redis伺服器,從伺服器比主伺服器多一個slaveof的設定和密碼。

配置3個哨兵,每個哨兵的配置都是一樣的。

在Redis安裝目錄下有一個sentinel.conf檔(複製3份)

# 禁止保护模式protected-mode no# 配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,192.168.11.128代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。sentinel monitor mymaster 192.168.11.128 6379 2# sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码# sentinel auth-pass <master-name> <password>sentinel auth-pass mymaster 123456</password></master-name>

上述關閉了保護模式,以便於測試。 有了上述的修改,我們可以進入Redis的安裝目錄的src目錄,透過下面的命令啟動伺服器和哨兵

# 启动Redis服务器进程./redis-server ../redis.conf
# 启动哨兵进程./redis-sentinel ../sentinel.conf

注意啟動的順序。 首先是主機(192.168.11.128)的Redis服務進程,然後啟動從機的服務進程,最後啟動3個哨兵的服務進程。

以上是詳解Redis哨兵模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除