redis sentinel 是一個分布式架構(這里的分布式是指:redis 數據節點、sentinel 節點集合、客戶端分布在多個物理節點的架構),其中包含若干個 sentinel 節點和 redis 數據點,每個 sentinel 節點會對數據節點和其余 sentinel 節點進行監控,當它發現節點不可達時,會對節點做下線標識。 ? ? ? ?(推薦學習:redis視頻教程)
如果被標識的是主節點,它還會和其他 Sentinel 節點進行“協商”,當 大多數 Sentinel 節點都認為主節點不可達時,它們會選舉出一個 Sentinel 節點來完成自動 故障轉移的工作,同時會將這個變化實時通知給 Redis 應用方。
整個過程完全是自動的,不需要人工來介入,所以這套方案很有效地解決了 Redis 的高可用問題。
Redis Sentinel 具有以下幾個功能:
監控(Monitoring):Sentinel 節點會定期檢測 Redis 數據節點(包括master和slave)、其余 Sentinel 節點是否可達。
通知(Notification):Sentinel 節點會將故障轉移的結果通知給應用方。
自動故障遷移(Automatic failover):當master不能正常工作時,Sentinel會實現從節點晉升為主節點并維護后續正確的主從關系。
配置提供者(Configuration provider.):在 Redis Sentinel 結構中,客戶端 在初始化的時候連接的是 Sentinel 節點集合,從中獲取主節點信息。
Redis & Redis Sentinel 的啟動
配置文件中修改。一般情況下,至少會需要三個哨兵對redis 進行監控,我們可以通過修改端口啟動多個sentinel 服務。
配置主服務器的ip 和端口,我們把監聽的端口修改成6380,并且加上權值為2,這里的權值,是用來計算我們需要將哪一臺服務器升級升主服務器。
在Redis安裝完畢后,我們可以通過如下的命令啟動Redis與Redis Sentinel(哨兵)
#?使用默認的配置文件 ./src/redis-server?../redis.conf #?使用默認的配置文件 ./src/redis-sentinel?../sentinel.conf
更多Redis相關技術文章,請訪問redis視頻教程欄目進行學習!