redis主從複製模式下,一旦主節點發生故障,需要人工干預進行故障轉移,故障轉移的實時性與準確性都無法保障。redis2.6版本以上提供了redis sentinel(哨兵)來自動發現和轉移故障,實現高可用
啟動多個redis例項
redis搭建主從複製
包含乙個主結點,兩個從結點,三個sentinel結點的配置檔案,已上傳至github
redis sentinel包含若干個sentinel節點和redis資料節點,每個sentinel節點會對其他所有節點進行監控,如果發現不可達節點,會進行標記。當大多數sentinel節點都認為主節點不可達,會選舉出其中乙個sentinel節點進行故障轉移工作
2.1主從模式故障轉移
轉移流程
主從模式下存在的問題
2.2哨兵模式故障轉移
轉移流程
注意:生產環境sentinel節點應當部署在不同的物理機器上。這裡我在一台機器上啟多個程序模擬3.1 部署主從資料節點
3.2 部署哨兵(sentinel)節點
部署哨兵節點跟redis資料節點方式大同小異,都是先copy配置檔案,再修改配置。可再安裝目錄找到名為redis-sentinel.conf的配置檔案模版 引數
埠號daemonize yes
是否開啟守護程序(後台啟動),跟資料節點配置一樣
sentinel monitor mymaster 127.0.0.1 6379 2
監控的主節點,mymaster為主節點別名,最後的2代表至少需要兩個sentinel節點同意
port 26379
sentinel程序占用的埠號,預設26379
dir /tmp
sentinel的工作目錄
bind 0.0.0.0
對外開放的ip,0000所有主機均可訪問
sentinel auth-pass mymaster 123456
如果master接點有密碼,需要配置密碼
sentinel down-after-milliseconds mymaster 30000
sentinel會定時傳送ping命令檢測是否可達,單位毫秒
sentinel parallel-syncs mymaster 1
發生故障轉移時,同時複製的從節點個數,1為輪詢
sentinel配置示例
sentinel節點啟動方式bind 0.0.0.0
daemonize yes
protected-mode no
port 26379
dir /tmp
sentinel monitor mymaster 127.0.0.1 6379 2
# sentinel auth-pass mymaster mysuper--secret-0123passw0rd
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
連線成功,可以執行 info sentinel命令檢視哨兵節點資訊。如下圖所示,改哨兵節點已經獲取到它所監控到主節點資訊了redis-sentinel redis-sentinel-26379.conf //指定配置檔案啟動
redis-cli -p 26379 //連線哨兵節點
以相同的方式再啟動2個sentinel節點
3.3 資料轉移測試
可通過shutdown命令關閉主節點(6379),也可直接kill -9模擬宕機情況,這裡我連線主節點執行shutdown命令
如下圖所示,在主節點程序關閉後,其中乙個從結點自動晉公升為主結點,自此哨兵模式已經部署成功
Redis運維篇 Redis的安裝與配置
yum和rpm yum install redis rpm ivh redis.rpm 進入到rpm包所在目錄,指定包名執行 原始碼編譯安裝找到redis.conf所在目錄,可通過find命令查詢,並用vim編輯 find name redis.conf vim redis.conf 配置守護程序 ...
Redis運維秘籍
先給大家講乙個基本知識點 資料庫分類大致分為兩類,關係型資料庫和非關係型資料庫。如果詳細區分的話,還可以繼續分下去。redis不僅僅是快取資料庫 面試的時候,很多人會問,redis和memcahce的區別?memcache是乙個純快取的鍵值資料庫,而redis是乙個非關係型的資料庫。兩者的差異較大,...
Redis 運維架構
1.2 redis 高可用架構優劣對比?1.3 常見的 redis 集群方案有哪些優缺點?二 redis 通用 三 redis 故障排查 3.2 如何知道,當前 redis 例項是處於阻塞狀態?3.3 redis 運維的故障有哪些?四 redis 效能優化 redis 是乙個開源的使用 ansi c...