閱讀700 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《架構之路Redis係列》Redis哨兵模式的搭建

一.哨兵模式

1.簡介

Redis Sentinel是Redis官方提供的集群管理工具,可以部署在其他與redis集群可通訊的機器中監控redis集群。

2.特性

監控:能持續監控Redis的主從實例是否正常工作;

通知:當被監控的Redis實例出問題時,能通過API通知係統管理員或其他程序;

自動故障恢複:如果主實例無法正常工作,Sentinel將啟動故障恢複機製把一個從實例提升為主實例,其他的從實例將會被重新配置到新的主實例,且應用程序會得到一個更換新地址的通知。

更多訪問官方:https://redis.io/topics/sentinel

3.哨兵作用

(1).監控redis(master和slave)是否正常運行;

(2).當master運行出現狀況,能夠通知另外一個進程自動將slave切換成master。

4.應用場景

當使用redis做master-slave的高可用方案時,如果master宕機了,想自動進行主備切換,可以考慮使用哨兵模式。

1.環境準備

(1).redis-3.2.9

(2).服務器三台(VMware下的unbutu)都裝redis

Master:192.168.247.133

Slave1:192.168.247.134

Slave2:192.168.247.135

2.環境搭建

(1).按照《架構之路Redis係列》如何搭建Redis的主從複製文章,先配置好主從關係。

(2).配置哨兵文件sentinel.conf,分別修改下麵幾項,具體參數可以根據實際業務修改。

備注:我這裏redis安裝到/opt/redis-3.2.9/sentinel.conf

IP:Master:192.168.247.133

# sentinel monitor mymaster 127.0.0.1 6379 2
sentinel monitor xiangqubaMaster 192.168.247.133 6379 1

# sentinel down-after-milliseconds mymaster 30000
sentinel down-after-milliseconds xiangqubaMaster 30000

# sentinel config-epoch mymaster 1
sentinel config-epoch xiangqubaMaster 1

# sentinel parallel-syncs mymaster 1
sentinel parallel-syncs xiangqubaMaster 1

IP:Slave1:192.168.247.134

# sentinel monitor mymaster 127.0.0.1 6379 2
sentinel monitor xiangqubaMaster2 192.168.247.133 6379 2

# sentinel down-after-milliseconds mymaster 30000
sentinel down-after-milliseconds xiangqubaMaster2 30000

# sentinel config-epoch mymaster 1
sentinel config-epoch xiangqubaMaster2 1

# sentinel parallel-syncs mymaster 1
sentinel parallel-syncs xiangqubaMaster2 1

IP:Slave2:192.168.247.135

# sentinel monitor mymaster 127.0.0.1 6379 2
sentinel monitor xiangqubaMaster3 192.168.247.133 6379 1

# sentinel down-after-milliseconds mymaster 30000
sentinel down-after-milliseconds xiangqubaMaster3 30000

# sentinel config-epoch mymaster 1
sentinel config-epoch xiangqubaMaster3 1

# sentinel parallel-syncs mymaster 1
sentinel parallel-syncs xiangqubaMaster3 1

(3).啟動

分別用下麵命令啟動三台服務器

a.啟動redis服務

$ ./redis-server ../redis.conf

b.啟動哨兵服務

$ ./redis-sentinel ../sentinel.conf

(4).測試

a.主機未掛前截圖

bb7242f260844b6094fa3e359308a47537bd1636

aee40fe371810268c99e7841ccdacedf0e83c778

00dd43bb827bceefdd09f7ba4f5d3509f846698c

b.主機掛了後截圖

f573868347a993285a57a989bcadb301920e772c

b8c76c7487f4a984eac541cae5385197c81ded94

0c6d5d0894277ca8d2b5193ec92d5ad50a8cee68

三.總結

關於哨兵模式的介紹就寫到這裏,工作中redis的哨兵模式是經常會用到的,所以這塊的配置希望讀者能 有所掌握。

個人博客原文:https://www.xiangquba.cn/2017/07/26/redis-sentinel/

最後更新:2017-08-29 10:02:41

  上一篇:go  Java自學能學會嗎?Java新手學習路線
  下一篇:go  第14屆(2017)全國大學生信息安全與對抗技術競賽圓滿落幕