解決redis sentinel 頻繁主備切換的問題
問題描述
操作redis發(fā)現(xiàn)原有Master變成slave,其他slave成master,切換較頻繁
問題分析
查看redis服務器sentinel日志,發(fā)現(xiàn)主機頻繁在凌晨左右sentinel哨兵檢查到master掛了,主備切換,排查為每天凌晨左右對hash:sms:qxt:mobile:content:day隊列進行刪除觸發(fā)的切機,隊列量級過大,刪除時導致redis服務器卡住,切機。
問題處理
隊列改用分批刪除,避免對大數(shù)據(jù)量隊列進行刪除而引起切機
補充:redis一主一從一哨兵,第一次主從切換成功,再次主從切換無法正常執(zhí)行?
自己在服務器學著搭建redis主從復制和哨兵模式。為了簡單,一開始只是搭建了一主(port 9001),一從(port 6379),一哨兵(26379)
主從哨兵都在一臺服務器上,并且主從服務器均設置了密碼:123456
先按照 主-->從--->哨兵 的順序依次啟動,日志和執(zhí)行命令都沒有問題,然后shutdown 9001服務器,哨兵模式順利將主節(jié)點切換到6379,然后在啟動9001的redis,發(fā)現(xiàn)9001的服務器變?yōu)閟lave ;
但是再次將6379(當前的master)宕機,無法繼續(xù)切換
如下:

一開始是以為配置文件有問題,來回檢查了幾遍,后來發(fā)現(xiàn)這個情形(6379為master ,9001為slave),哪怕在master存放新的key-value,也無法同步到9001
查看了一下9001的redis的info配置發(fā)現(xiàn)

我的6379的服務器是正常運行的,但是9001沒法連接到相關的6379服務器,自然也就沒法對master(6379)的服務器進行同步了
想到6379設置了服務密碼,我就在9001的redis里加了如下配置

修改完配置之后,重啟服務,再次模擬剛剛的情形,二次切換也成功了

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
Linux系統(tǒng)下安裝Redis數(shù)據(jù)庫過程
大家好,本篇文章主要講的是Linux系統(tǒng)下安裝Redis數(shù)據(jù)庫過程,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
Spring?Boot實戰(zhàn)解決高并發(fā)數(shù)據(jù)入庫之?Redis?緩存+MySQL?批量入庫問題
這篇文章主要介紹了Spring?Boot實戰(zhàn)解決高并發(fā)數(shù)據(jù)入庫之?Redis?緩存+MySQL?批量入庫問題,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02
RedisTemplate中boundHashOps的使用小結
redisTemplate.boundHashOps(key)?是 RedisTemplate 類的一個方法,本文主要介紹了RedisTemplate中boundHashOps的使用小結,具有一定的參考價值,感興趣的可以了解一下2024-04-04

