redis哨兵模式說明與搭建詳解
哨兵模式是redis高可用的一種解決方案。
哨兵必須用三個實例取保證自己的高可用,但是哨兵+主從模式是不能保證消息不丟失的。
為什么用三個來保證呢?
假設(shè)現(xiàn)在有兩個服務(wù)器,第一臺有redis主節(jié)點M1,和哨兵S1,第二臺有redis從節(jié)點S2,哨兵S2。

如果M1宕機,S1和S2中只要有1個哨兵認(rèn)為master宕機就可以還行切換,此時哨兵大多數(shù)(我理解的大多數(shù)的過半)還在運行,那么S1,S2能通過選舉,拿出來一個哨兵進行故障轉(zhuǎn)移。
如果第一個服務(wù)器整個宕機,M1,S1都已經(jīng)死掉了,此時S2發(fā)現(xiàn)M1宕機,但是哨兵只有一個了,不滿足大多數(shù)的機器存活,無法選舉,就沒有辦法來執(zhí)行故障轉(zhuǎn)移。雖然另外一臺機器還有一個R1,但是故障轉(zhuǎn)移不會執(zhí)行。
經(jīng)典的是三節(jié)點的哨兵集群

如果M1所在機器宕機了,那么三個哨兵還剩下2個,S2和S3可以一致認(rèn)為master宕機,然后選舉出一個來執(zhí)行故障轉(zhuǎn)移。
同時3個哨兵的大多數(shù)是2,所以還剩下的2個哨兵運行著,就可以允許執(zhí)行故障轉(zhuǎn)移。
接下來談一談怎么做哨兵
首先我們需要搭建個一主兩從的redis,單個節(jié)點的redis安裝鏈接如下
redis安裝包下載地址Redis
我們可以將單個redis安裝三次(6381為主機,6380,6379為從機),然后修改配置文件

1.配置redis.conf文件中的端口號分別為6379,6380,6381,
2.daemonize均為yes
3.6380和6379 均添加slaveof 127.0.0.1 6379 (我是在一臺服務(wù)器上安裝的,若不是一臺服務(wù)器,ip換為redis主機ip)


分別使用./src/redis-server ./myredis/redis.conf 命令啟動redis。
啟動后使用./src/redis-cli -p 6379 -h 127.0.0.1 連接redis的客戶端 (ip和端口換成自己的)
再執(zhí)行info Replication,即可看到主從狀態(tài)
三臺狀態(tài)如下



主從就搭建好了。
接下來配置哨兵
將剛剛的文件redis-6379 復(fù)制三份,分別重命名為sentinel-26379,sentinel-26380,sentinel-26381

然后分別修改三個文件的配置文件sentinel.conf
#端口號 (換成相應(yīng)sentinel的端口號) port 26379 #守護進程,后臺啟動 daemonize yes #監(jiān)測redis集群的主機 sentinel monitor mymaster 127.0.0.1 6381 1
修改完畢之后使用./src/sentinel-server ./sentinel.conf啟動,成功后,
使用./src/resic-cli -p 26379 命令連接sentinel(其他兩個也可以使用這個連接),成功后,使用info命令,可以看到監(jiān)聽的redis集群狀態(tài)



到此這篇關(guān)于redis哨兵模式詳解的文章就介紹到這了,更多相關(guān)redis哨兵模式詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
RedisDesktopManager?連接redis的方法
這篇文章主要介紹了RedisDesktopManager?連接redis,需要的朋友可以參考下2023-08-08
Redis數(shù)據(jù)結(jié)構(gòu)之listpack和quicklist使用學(xué)習(xí)
這篇文章主要為大家介紹了Redis數(shù)據(jù)結(jié)構(gòu)之listpack和quicklist的使用學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
為什么RedisCluster設(shè)計成16384個槽
本文主要介紹了為什么RedisCluster設(shè)計成16384個槽,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09

