天天看點

redis sentinel搭建過程1,部署結構圖:2,目标清單:3,安裝 redis4,實作過程

整理了近期在項目上做的一些技術研究,希望與大家共同探讨交流。

項目中經常使用緩存服務,目前redis是當之無愧的首選,即便如此對于企業級項目,仍然要考慮更高的穩定性,是以進行了如下研究探索。

1,部署結構圖:

redis sentinel搭建過程1,部署結構圖:2,目标清單:3,安裝 redis4,實作過程

2,目标清單:

1) 192.168.31.220、192.168.31.221 和 192.168.31.222 為三台 redis 伺服器。

初始狀态下 220 為 master,221 和 222 為 slave,slave 的資料來源于 master。

2) redis 伺服器上各自存在一個 Sentinel,監控本機 redis 運作情況,并通知給閉路環上其它的 redis 節點。

3) 當 master 發生異常(例如:當機和斷電等)導緻不可運作時,Sentinel 将通知給其它節點,而剩餘節點上的 Sentinel 将重新選舉出新的master,而原來的master重新恢複正常後,則一直扮演 slave 角色。

4) 規定整個架構體系中,master提供讀寫服務,而slave隻提供讀取服務。

3,安裝 redis

tar *  && make && make test           

4,實作過程

4.1 編輯 master(220)的配置檔案

vi  /etc/redis/redis.conf           

Master redis.conf 摘要代碼

daemonize  yes  //開啟守護模式
dir ./            //指定資料存儲目錄
appendonly  yes    //打開 aof 持久化
appendfsync everysec // 每秒一次 aof 寫
protected-mode no     //保護模式關閉
# bind 192.168.31.220   //要想遠端連接配接 redis,将此行登出           

4.2 編輯 slave(221和222上)的配置檔案

在上一節的基本上加入如下配置項:

Slave redis.conf 摘要代碼

slaveof 192.168.31.220 6379    //  指定所屬的主機
slave-read-only  yes     //指定從機"隻讀"
min-slaves-to-write   1
min-slaves-max-lag    10           

4.3 編輯 Sentinel 檔案

vi  /etc/redis/sentinel.conf           

Sentinel.conf 摘要代碼

monitor mymaster 192.168.31.220 6379 2
down-after-milliseconds mymaster 60000
failover-timeout mymaster 180000
parallel-syncs    mymaster 1
down-after-milliseconds resque 10000
failover-timeout resque 180000
parallel-syncs    resque 5           

注意:可以配置多個 master 節點

4.4 啟動

redis-server redis.conf
redis-sentinel sentinel.conf &           

先啟動redis,再啟動sentinel

注意:

永遠部署至少三個 Sentinel 在三個不同的機器裡
在 sentinel 沒有選舉出新 master 之前,不要立即重新開機失效的 master           

4.5 使用

4.5.1 檢視複制資訊:

redis-cli -h 192.168.31.220 -p 6379
auth 123123     //如果配置了密碼請執行這一步,未配置請忽略
info replicaiton           

4.5.2 檢視 sentinel 監控的 master-slave 資訊:

redis-cli -h 192.168.31.220 -p 26379
sentinel masters
sentinel slaves mymaster           

此時如果出現報錯,那麼在sentinel的配置檔案中加入

protected-mode  no           

重新開機該 sentinel。