解決redis sentinel 頻繁主備切換的問題
問題描述
操作redis發(fā)現(xiàn)原有Master變成slave,其他slave成master,切換較頻繁
問題分析
查看redis服務(wù)器sentinel日志,發(fā)現(xiàn)主機(jī)頻繁在凌晨左右sentinel哨兵檢查到master掛了,主備切換,排查為每天凌晨左右對(duì)hash:sms:qxt:mobile:content:day隊(duì)列進(jìn)行刪除觸發(fā)的切機(jī),隊(duì)列量級(jí)過大,刪除時(shí)導(dǎo)致redis服務(wù)器卡住,切機(jī)。
問題處理
隊(duì)列改用分批刪除,避免對(duì)大數(shù)據(jù)量隊(duì)列進(jìn)行刪除而引起切機(jī)
補(bǔ)充:redis一主一從一哨兵,第一次主從切換成功,再次主從切換無法正常執(zhí)行?
自己在服務(wù)器學(xué)著搭建redis主從復(fù)制和哨兵模式。為了簡單,一開始只是搭建了一主(port 9001),一從(port 6379),一哨兵(26379)
主從哨兵都在一臺(tái)服務(wù)器上,并且主從服務(wù)器均設(shè)置了密碼:123456
先按照 主-->從--->哨兵 的順序依次啟動(dòng),日志和執(zhí)行命令都沒有問題,然后shutdown 9001服務(wù)器,哨兵模式順利將主節(jié)點(diǎn)切換到6379,然后在啟動(dòng)9001的redis,發(fā)現(xiàn)9001的服務(wù)器變?yōu)閟lave ;
但是再次將6379(當(dāng)前的master)宕機(jī),無法繼續(xù)切換
如下:
一開始是以為配置文件有問題,來回檢查了幾遍,后來發(fā)現(xiàn)這個(gè)情形(6379為master ,9001為slave),哪怕在master存放新的key-value,也無法同步到9001
查看了一下9001的redis的info配置發(fā)現(xiàn)
我的6379的服務(wù)器是正常運(yùn)行的,但是9001沒法連接到相關(guān)的6379服務(wù)器,自然也就沒法對(duì)master(6379)的服務(wù)器進(jìn)行同步了
想到6379設(shè)置了服務(wù)密碼,我就在9001的redis里加了如下配置
修改完配置之后,重啟服務(wù),再次模擬剛剛的情形,二次切換也成功了
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
redis實(shí)現(xiàn)延時(shí)隊(duì)列的兩種方式(小結(jié))
這篇文章主要介紹了redis實(shí)現(xiàn)延時(shí)隊(duì)列的兩種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Redis?的內(nèi)存淘汰策略和過期刪除策略的區(qū)別
這篇文章主要介紹了Redis?的內(nèi)存淘汰策略和過期刪除策略的區(qū)別,Redis?是可以對(duì)?key?設(shè)置過期時(shí)間的,因此需要有相應(yīng)的機(jī)制將已過期的鍵值對(duì)刪除,而做這個(gè)工作的就是過期鍵值刪除策略2022-07-07Spring?Boot?整合Redis?實(shí)現(xiàn)優(yōu)惠卷秒殺?一人一單功能
這篇文章主要介紹了Spring?Boot?整合Redis?實(shí)現(xiàn)優(yōu)惠卷秒殺?一人一單,在分布式系統(tǒng)下,高并發(fā)的場景下,會(huì)出現(xiàn)此類庫存超賣問題,本篇文章介紹了采用樂觀鎖來解決,需要的朋友可以參考下2022-09-09淺析Redis Sentinel 與 Redis Cluster
本文主要介紹Redis Sentinel 及 Redis Cluster的區(qū)別及用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06