上一篇我們說了redis的主從配置,我們也配置了一個主節點和兩個從節點,主節點中寫入的資料會自動同步到從節點中
但是這種方式有個缺陷,就是當主節點掛了,整個redis服務就不能用了,需要人為的去重啟或者進行重新配置主節點,比較麻煩;
所以就有人想啊,要是專門有個人在旁邊守著主節點,每隔一段時間就去看看主節點能不能用,如果不能用了,那就選擇其中一個從節點來對外提供服務,因為從節點中資料和主節點中是一樣的,剛好可以完美使用
但是直接請個人就太粗暴了,需要花銀子,于是今天說的哨兵模式(sentinel)就起到這個人的作用,專門來幫你看著主節點是否正常
1. sentinel機制的配置
哨兵機制就是相當于請了一個人幫你看著的你redis主節點,當你的主節點A掛了之后,就會挑選一個從節點B變成主節點,就算后面A節點修好了回來了,此時A只能當從節點,這也叫做故障轉移
下圖就是配置哨兵需要的檔案

哨兵的話需要監聽所有的主從節點,難道我們需要配置所有的節點的ip和埠嗎?這也太傻了
哨兵只需要配置主節點,就可以獲取到所有主從節點的資訊,其中原理就是哨兵通過和主節點保持心跳來看看主節點是否正常(不知道心跳的,可以看做每隔幾秒鐘就ping一下主節點)
sentinel.conf 檔案如下,其中mymaster是給主節點取的名字,隨意;然后就是主節點的ip+埠,最后的1表示只有一個哨兵
注意:如果是遠程redis,然后你要在springboot組態檔中配置哨兵節點,就需要在下面這里添加一行: bind 0.0.0.0 表示可以接受遠程連接
sentinel monitor mymaster 127.0.0.1 5000 1
啟動sentinel.bat 檔案如下:
redis-server.exe ./sentinel5000.conf --sentinel
2. sentinel的使用
然后雙擊啟動sentinel.bat就可以啟動哨兵去監聽所有節點了;

當你啟動了之后,你會發現一個很有意思的東西,就是sentinel.conf 組態檔自動的改變了

現在我們的主節點是5000埠的,我們把5000埠的redis給關了,等幾秒鐘,再看看這個組態檔變了

此時我們在6000埠的redis是主節點,可以進行讀寫操作,并且會同步資料到從節點

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/254337.html
標籤:其他
上一篇:Soul網關使用感受
下一篇:HashSet詳解
