redis集群和哨兵的區(qū)別

redis集群和哨兵有什么區(qū)別呢?

redis集群和哨兵的區(qū)別

哨兵的作用就是監(jiān)控redis系統(tǒng)的運(yùn)行狀況。它的功能包括以下兩個(gè)。(推薦學(xué)習(xí):Redis視頻教程

監(jiān)控主數(shù)據(jù)庫和從數(shù)據(jù)庫是否正常運(yùn)行。?

主數(shù)據(jù)庫出現(xiàn)故障時(shí)自動(dòng)將從數(shù)據(jù)庫轉(zhuǎn)換為主數(shù)據(jù)庫。

sentinel發(fā)現(xiàn)master掛了后,就會(huì)從slave中重新選舉一個(gè)master。

哨兵模式強(qiáng)調(diào)高可用

Sentinel 系統(tǒng)用于管理多個(gè) Redis 服務(wù)器(instance), 該系統(tǒng)執(zhí)行以下三個(gè)任務(wù):

監(jiān)控(Monitoring): Sentinel 會(huì)不斷地檢查你的主服務(wù)器和從服務(wù)器是否運(yùn)作正常。

提醒(Notification): 當(dāng)被監(jiān)控的某個(gè) Redis 服務(wù)器出現(xiàn)問題時(shí), Sentinel 可以通過 API 向管理員或者其他應(yīng)用程序發(fā)送通知。

自動(dòng)故障遷移(Automatic failover): 當(dāng)一個(gè)主服務(wù)器不能正常工作時(shí), Sentinel 會(huì)開始一次自動(dòng)故障遷移操作, 它會(huì)將失效主服務(wù)器的其中一個(gè)從服務(wù)器升級為新的主服務(wù)器, 并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器; 當(dāng)客戶端試圖連接失效的主服務(wù)器時(shí), 集群也會(huì)向客戶端返回新主服務(wù)器的地址, 使得集群可以使用新主服務(wù)器代替失效服務(wù)器。

客戶端中不會(huì)記錄redis的地址(某個(gè)IP),而是記錄sentinel的地址,這樣我們可以直接從sentinel獲取的redis地址,因?yàn)閟entinel會(huì)對所有的master、slave進(jìn)行監(jiān)控,它是知道到底誰才是真正的master的,例如我們故障轉(zhuǎn)移,這時(shí)候?qū)τ趕entinel來說,master是變了的,然后通知客戶端。而客戶端根本不用關(guān)心到底誰才是真正的master,只關(guān)心sentinel告知的master。

集群

即使使用哨兵,redis每個(gè)實(shí)例也是全量存儲(chǔ),每個(gè)redis存儲(chǔ)的內(nèi)容都是完整的數(shù)據(jù),浪費(fèi)內(nèi)存且有木桶效應(yīng)。為了最大化利用內(nèi)存,可以采用集群,就是分布式存儲(chǔ)。即每臺(tái)redis存儲(chǔ)不同的內(nèi)容,共有16384個(gè)slot。每個(gè)redis分得一些slot,hash_slot = crc16(key) mod 16384 找到對應(yīng)slot,鍵是可用鍵,如果有{}則取{}內(nèi)的作為可用鍵,否則整個(gè)鍵是可用鍵

集群至少需要3主3從,且每個(gè)實(shí)例使用不同的配置文件,主從不用配置,集群會(huì)自己選。

cluster是為了解決單機(jī)Redis容量有限的問題,將數(shù)據(jù)按一定的規(guī)則分配到多臺(tái)機(jī)器。

集群模式提高并發(fā)量。

更多Redis相關(guān)技術(shù)文章,請?jiān)L問Redis視頻教程欄目進(jìn)行學(xué)習(xí)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊11 分享