1. 程式人生 > >Redis(六) 叢集高可用

Redis(六) 叢集高可用

叢集的搭建

首先,準備3臺centos虛擬機器,每檯布置2臺Redis例項。

#安裝redis到指定目錄

#make PREFIX=/usr/local/redis install

192.168.1.110:7000                  192.168.1.111 :7001


192.168.1.112:7002                  192.168.1.113:7003

192.168.1.114:7004                  192.168.1.115:7005

主機名 IP 服務埠 預設 6379 叢集埠 服務埠數+10000 主/從
zlt尼瑪銀行00 192.168.1.110 7000 
17000 Master
zlt尼瑪銀行01 192.168.1.111 7001  17001 Master
zlt尼瑪銀行02 192.168.1.112 7002  17002 Master
zlt尼瑪銀行03 192.168.1.113 7003  17003 Slave
zlt尼瑪銀行04 192.168.1.114 7004 17004 Slave
zlt尼瑪銀行05 192.168.1.115 7005  17005 Slave

每臺redis的配置檔案主要配置如下:

配置選項

選項值 說明
daemonize yes 是否作為守護程序執行
pidfile
/var/run/redis-7000.pid
如以後臺程序執行,則需指定一個 pid, 預設為/var/run/redis.pid
port
7000 監聽埠,預設為 6379
注意:叢集通訊埠值預設為此埠值+10000,如17111
databases 1 可用資料庫數,預設值為 16,預設資料庫儲存在 DB 0
號 ID 庫中,無特殊需求,建議僅設定一個數據庫
databases 1
cluster-enabled yes 開啟 redis 叢集
cluster-config-file /usr/local/redis/cluste
r/7111/nodes.conf
叢集配置檔案(啟動自動生成),不用人為干涉
cluster-node-timeout 15000 節點互連超時時間。毫秒
cluster-migration
barrier
 1 資料遷移的副本臨界數,這個引數表示的是,
一個主節點在擁有多少個好的從節點的時候就
要割讓一個從節點出來給另一個沒有任何從節點的主節點。
appendonly yes 啟用 aof 持久化方式
因為 redis 本身同步資料檔案是按上面 save 條件來同
步的,所以有的資料會在一段時間內只存在於記憶體中。
預設值為 no
dir /usr/local/redis/cluste
r/711
節點資料持久化存放目錄(建議配置

分別啟動這6臺redis,並將防火牆開啟,開放通訊埠和叢集埠 ,叢集埠為預設生成,為通訊埠+10000,我們這裡即為17000,17000 ..........


示例:


執行命令 vi /etc/sysconfig/iptables 新增如下程式碼:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7000 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 17000 -j ACCEPT

因為 Redis 叢集的建立指令是由ruby指令碼寫的,所以我們需要在centos中安裝他。

yum gcc install

安裝 ruby 和 rubygems(注意:需要 ruby 的版本在 1.8.7 以上)
# yum install ruby rubygems
 
檢查 ruby 版本:
# ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
 
gem 安裝 redis ruby 介面:
# gem install redis

到此為止,我們就可以用 redis安裝目錄下的  ruby指令碼 redis-trib.rb 來進行叢集建立了。

那麼先學習一下ruby的這個redis-trib.rb的指令碼吧。


參見http://blog.csdn.net/chanrenyuan/article/details/51855169


執行叢集建立命令

# /usr/local/bin/redis-trib.rb create --replicas 1 192.168.1.110:7000  192.168.1.111 :7001 192.168.1.112:7002 192.168.1.113:7003 192.168.1.114:7004           

192.168.1.115:7005


其中
create:是ruby指令碼
redis-trib.rb中的建立命令, --replicas 1 代表每個主節點有一個從節點。


到此沒報錯的話,你的redis叢集就搭建成功了。可以使用ruby指令碼中的 check命令進行檢視和測試工作。

 拓展,在redis-trib.rb指令碼中還有很多其他命令,例如 add-node 在叢集的基礎上再增加節點,del-node在叢集的基礎上刪除節點,check檢視叢集狀態,shared分配hash槽,預設有14000+個hash槽等。具體可以檢視參見文件。