上一篇 redis cluster 集群暢談一 ,主要講解了 redis cluster 集群架構(gòu) 的優(yōu)勢、redis cluster 和 redis replication + sentinal 對比、redis cluster 數(shù)據(jù)分片算法,并簡單介紹了原始hash算法 和 一致性hash 算法 + 虛擬節(jié)點(diǎn)。從標(biāo)題看,大家就知道本篇主要講解 redis cluster 集群 搭建,閑話少說,俺們直接 開擼!
環(huán)境準(zhǔn)備:
centos6.5 minimal
redis-3.2.8
3 * Node
注意:redis cluster 集群正常工作至少需要3個主節(jié)點(diǎn),一個高可用,健壯的分布式的集群,每個master都建議至少給一個slave,正式環(huán)境建議 6 臺機(jī)器上去搭建,最少 3 臺機(jī)器,為了模擬集群搭建,這里使用 3 臺 虛擬機(jī)器 搭建 6 個實(shí)例的redis cluster
redis 安裝
每個 node 上安裝 redis (這里就不講了,參考博主前面講解的 redis安裝)
redis cluster 相關(guān)配置介紹
cluster-enabled <yes/no> //是否啟動 redis cluster 集群
cluster-config-file <filename> //指定一個文件,集群 redis實(shí)例保存集群狀態(tài)位置,文件主要保存集群中其他機(jī)器的信息,比如節(jié)點(diǎn)的上線和下限,故障轉(zhuǎn)移; 這是redis本身去維護(hù)的
cluster-node-timeout <milliseconds> //節(jié)點(diǎn)存活超時時間,超過milliseconds 時間,集群認(rèn)為節(jié)點(diǎn)宕機(jī),master宕機(jī)的話就會觸發(fā)主備切換,slave宕機(jī)就不會提供服務(wù)
redis cluster 集群搭建
分別定義 6 個 redis 實(shí)例配置文件 : 7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf
redis 集群配置
在每個節(jié)點(diǎn)上redis 進(jìn)行以下操作,以 7001為例
mkdir -p /etc/redis-cluster //集群信息保存統(tǒng)一目錄
mkdir -p /var/log/redis //日志信息統(tǒng)一保存目錄
mkdir -p /var/redis/7001 // redis 的持久化文件

將 redis-3.2.8 下redis.conf 拷貝到 /etc/redis 目錄中,并改名為 7001.conf,配置信息修改如下:
cd /usr/local/redis-3.2.8 && cp redis.conf /etc/redis/7001.conf
port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7001.pid
dir /var/redis/7001
logfile /var/log/redis/7001.log
bind 192.168.43.16
appendonly yes
修改redis 實(shí)例啟動腳本
- 在/etc/init.d下,放6個啟動腳本,分別為: redis_7001, redis_7002, redis_7003, redis_7004, redis_7005, redis_7006
cd redis-3.2.8 && cp utils/redis_init_script /etc/init.d/redis_7001 && chmod 777 /etc/init.d/redis_*
- 每個啟動腳本中,修改對應(yīng)的端口號
vim redis_7001

其他7002,7003,7004,7005,7006 重復(fù)以上操作
節(jié)點(diǎn) - redis 實(shí)例 對應(yīng)關(guān)系:
192.168.43.16 7001
192.168.43.16 7002
192.168.43.17 7003
192.168.43.17 7004
192.168.43.18 7005
192.168.43.18 7006
創(chuàng)建集群
分別啟動 6個redis 實(shí)例
cd /etc/init.d/ && ./redis_7001 start
cd /etc/init.d/ && ./redis_7002 start
cd /etc/init.d/ && ./redis_7003 start
cd /etc/init.d/ && ./redis_7004 start
cd /etc/init.d/ && ./redis_7005 start
cd /etc/init.d/ && ./redis_7006 start
通過redis-trib.rb 創(chuàng)建redis cluster
redis-trib.rb 需要ruby環(huán)境,所以需要安裝ruby,只需要在一個node 中安裝操作即可,這里在192.168.43.16 機(jī)器上安裝
yum install -y ruby
yum install -y rubygems
gem install redis
cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin //創(chuàng)建軟連接
創(chuàng)建集群
redis-trib.rb create --replicas 1 192.168.43.16:7001 192.168.43.16:7002 192.168.43.17:7003 192.168.43.17:7004 192.168.43.18:7005 192.168.43.18:7006
--replicas 表示每個master分配多少個slave

上圖 yes 確認(rèn)接收當(dāng)前分配繼續(xù)完成集群創(chuàng)建

檢查集群信息
redis-trib.rb check 192.168.43.16:7001
重新創(chuàng)建集群
- 關(guān)閉所有的redis 實(shí)例
pkill redis
- 清除集群信息保存文件
cd /etc/redis-cluster && rm -rf *
- 清除redis 持久化數(shù)據(jù)文件
cd /var/redis/7001 && rm -rf *
- 重新創(chuàng)建,使用上面介紹過的 redis-trib.rb create --replicas 命令即可
redis-trib.rb create --replicas 1 192.168.43.16:7001 192.168.43.16:7002 192.168.43.17:7003 192.168.43.17:7004 192.168.43.18:7005 192.168.43.18:7006
好了,本章的redis cluster集群部署就到這里。
以上就是本章內(nèi)容,如有不對的地方,請多多指教,謝謝!
為了方便有需要的人,本系列全部軟件都在 https://pan.baidu.com/s/1qYsJZfY
下章預(yù)告:主要講解 redis cluster 集群暢談二
作者:逐暗者 (轉(zhuǎn)載請注明出處)