Redis的高可用方案的實現:主從切換以及虛擬IP或客戶端redis
從Redis 2.8開始加入對Sentinel機制從而實現了服務器端的主從切換,但目前還沒有發現實現虛擬IP或客戶端切換方案服務器
Redis-Sentinel是Redis官方推薦的高可用性(HA)解決方案進程
當用Redis作Master-slave的高可用方案時,假如master宕機了,Redis自己(包括它的不少客戶端)都沒有實現自動進行主備切換,ast
而Redis-sentinel自己也是一個獨立運行的進程,它能監控多個master-slave集羣,發現master宕機後能進行自動切換。集羣
功能:監控
監控redis是否按照預期良好地運行;服務器端
若是發現某個redis節點運行出現情況,可以通知另一個進程;redis集羣
可以進行自動切換。當一個master節點不可用時,可以選舉出master的多個slave(若是有超過一個slave的話)中的一個來做爲新的master,其它的slave節點會將它所追隨的master的地址改成被提高爲master的slave的新地址高可用
只使用單個sentinel進程來監控redis集羣是不可靠的,當sentinel進程宕掉後整個集羣系統將沒法按照預期的方式運行。因此有必要將sentinel集羣客戶端
好處:
解決單點問題;
有多個sentinel,redis的客戶端能夠隨意地鏈接任意一個sentinel來得到關於redis集羣中的信息