上一篇咱們說了redis的主從配置,咱們也配置了一個主節點和兩個從節點,主節點中寫入的數據會自動同步到從節點中redis
可是這種方式有個缺陷,就是當主節點掛了,整個redis服務就不能用了,須要人爲的去重啓或者進行從新配置主節點,比較麻煩;spring
因此就有人想啊,要是專門有我的在旁邊守着主節點,每隔一段時間就去看看主節點能不能用,若是不能用了,那就選擇其中一個從節點來對外提供服務,由於從節點中數據和主節點中是同樣的,恰好能夠完美使用springboot
可是直接請我的就太粗暴了,須要花銀子,因而今天說的哨兵模式(sentinel)就起到這我的的做用,專門來幫你看着主節點是否正常ide
1. sentinel機制的配置3d
哨兵機制就是至關於請了一我的幫你看着的你redis主節點,當你的主節點A掛了以後,就會挑選一個從節點B變成主節點,就算後面A節點修好了回來了,此時A只能當從節點,這也叫作故障轉移server
下圖就是配置哨兵須要的文件blog
哨兵的話須要監聽全部的主從節點,難道咱們須要配置全部的節點的ip和端口嗎?這也太傻了ip
哨兵只須要配置主節點,就能夠獲取到全部主從節點的信息,其中原理就是哨兵經過和主節點保持心跳來看看主節點是否正常(不知道心跳的,能夠看作每隔幾秒鐘就ping一下主節點)同步
sentinel.conf 文件以下,其中mymaster是給主節點取的名字,隨意;而後就是主節點的ip+端口,最後的1表示只有一個哨兵it
注意:若是是遠程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是主節點,能夠進行讀寫操做,而且會同步數據到從節點