天天看點

Redis開發運維實踐高可用和叢集架構與實踐(二)11.1.2 環境搭建11.1.2.1 部署架構11.1.2.2 網絡規劃11.1.2.3 使用者規劃11.1.2.4 持久化規劃11.1.2.5 目錄規劃11.1.2.6 部署步驟11.1.2.7 配置檔案

部署架構上采用三台機器,一個master接受寫請求,兩個slave進行資料同步,三台機器上都部署sentinel(一般為奇數個,因為需要絕大部分進行投票才能failover)。(官方示例)具體架構如下圖:

Redis開發運維實踐高可用和叢集架構與實踐(二)11.1.2 環境搭建11.1.2.1 部署架構11.1.2.2 網絡規劃11.1.2.3 使用者規劃11.1.2.4 持久化規劃11.1.2.5 目錄規劃11.1.2.6 部署步驟11.1.2.7 配置檔案

注意:如果有條件可以将sentinel多部署幾個在用戶端所在的應用伺服器上,而不是與從節點部署在一起,這樣避免整機當機後sentinel和slave都減少而導緻的切換選舉sentinel無法超過半數。

redis高可用環境不需要進行心跳線的配置,每個實體節點的網卡進行雙網卡主備綁定生成bond0即可。

使用者名

使用者所在組

使用者目錄

權限

備注

redis(10086)

redis (10086)

/redis

sudo(如需要浮動ip時賦予)

--

如果讀多寫少,可以在master上隻開啟aof,在低峰期定時進行bgsave,在slave上徹底關閉持久化。 如果讀寫差不多,可以在一個slave上開啟rdb(這個slave隻做持久化,不進行讀操作),在其餘主從都關閉持久化。 注意:從節點是不會從本地恢複而直接從master節點進行恢複的,是以在重新開機前如果有需要備份從節點,則需要把aof和rdb檔案移走。

目錄

含義

/redis/bin

redis可執行檔案

/redis/conf

redis 和supervisord的配置檔案

/redis/run

redis和supervisord運作時的pid檔案

/redis/log

redis和supervisord的日志

/redis/script

一些管理腳本和測試腳本

/redis/data

redis持久化資料目錄

解壓下列壓縮包至/tmp/redis目錄,以符合上述目錄結構:

部署相關元件: cd /tmp/redis/deploy ./deploy.sh

修改master配置檔案redis.conf,注釋掉包含slaveof的語句。 修改slave配置檔案redis.conf,添加slaveof masterip port,指定主從 修改三台機器的sentinel配置檔案,指定主伺服器的ip和端口: sentinel monitor mymaster masterip port 2

然後使用supervisord重新啟動。

首先,一個sentinel可以配置多個master。一個master的配置如下:

<b>本文為《redis開發運維實踐指南》内容,該書作者為黃鵬程,已授權雲栖社群轉載。</b>

繼續閱讀