Redis運維篇 Redis高可用之哨兵模式

2021-10-24 20:50:45 字數 2325 閱讀 3139

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配置示例

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

sentinel節點啟動方式

redis-sentinel redis-sentinel-26379.conf		//指定配置檔案啟動

redis-cli -p 26379 //連線哨兵節點

連線成功,可以執行 info sentinel命令檢視哨兵節點資訊。如下圖所示,改哨兵節點已經獲取到它所監控到主節點資訊了

以相同的方式再啟動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...