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槽等。具體可以檢視參見文件。