1. 程式人生 > >redis cluster集群部署

redis cluster集群部署

sta 配置 view cat AC ont 相關 介紹 提供服務

上一篇 http://www.cnblogs.com/qinyujie/p/9029153.html,主要講解了 redis cluster 集群架構 的優勢、redis cluster 和 redis replication + sentinal 對比、redis cluster 數據分片算法,並簡單介紹了原始hash算法 和 一致性hash 算法 + 虛擬節點。從標題看,大家就知道本篇主要講解 redis cluster 集群 搭建,閑話少說,俺們直接 開擼

環境準備:
centos6.5 minimal
redis-3.2.8
3 * master 3* slave

註意:redis cluster 集群正常工作至少需要3個主節點,一個高可用,健壯的分布式的集群,每個master都建議至少給一個slave,正式環境建議 6 臺機器上去搭建,最少 3 臺機器,為了模擬集群搭建,這裏使用 3 臺 虛擬機器 搭建 6 個實例的redis cluster

redis 安裝

每個 node 上安裝 redis (這裏就不講了)

redis cluster 相關配置介紹

cluster-enabled <yes/no> //是否啟動 redis cluster 集群

cluster-config-file <filename> //指定一個文件,集群 redis實例保存集群狀態位置,文件主要保存集群中其他機器的信息,比如節點的上線和下限,故障轉移; 這是redis本身去維護的

cluster-node-timeout <milliseconds> //節點存活超時時間,超過milliseconds 時間,集群認為節點宕機,master宕機的話就會觸發主備切換,slave宕機就不會提供服務

redis cluster 集群搭建

分別定義 6 個 redis 實例配置文件 : 6381.conf,6382.conf,6383.conf,6384.conf,6385.conf,6386.conf

redis 集群配置
在每個節點上redis 進行以下操作,以 6381為例

mkdir -p /etc/redis-cluster //集群信息保存統一目錄

mkdir -p /var/log/redis //日誌信息統一保存目錄

mkdir -p /var/redis/6381 // redis 的持久化文件

技術分享圖片
目錄創建
將 redis-3.2.8 下redis.conf 拷貝到 /etc/redis 目錄中,並改名為 6381.conf,配置信息修改如下:

cd /usr/local/redis-3.2.8 && cp redis.conf /etc/redis/6381.conf

port 6381
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-6381.conf
cluster-node-timeout 15000
daemonize yes                           
pidfile /var/run/redis_6381.pid                         
dir  /var/redis/6381        
logfile /var/log/redis/6381.log
bind 192.168.43.16      
appendonly yes
修改redis 實例啟動腳本
  • 在/etc/init.d下,放6個啟動腳本,分別為: redis_6381, redis_6382, redis_6383, redis_6384, redis_6385, redis_6386

cd redis-3.2.8 && cp utils/redis_init_script /etc/init.d/redis_6381 && chmod 777 /etc/init.d/redis_*

  • 每個啟動腳本中,修改對應的端口號

    vim redis_6381

    技術分享圖片

修改對應的啟動腳本

其他6382,6383,6384,6385,6386 重復以上操作

節點 - redis 實例 對應關系:

192.168.43.16 6381
192.168.43.16 6382
192.168.43.17 6383
192.168.43.17 6384
192.168.43.18 6385
192.168.43.18 6386

創建集群

分別啟動 6個redis 實例

cd /etc/init.d/ && ./redis_6381 start
cd /etc/init.d/ && ./redis_6382 start
cd /etc/init.d/ && ./redis_6383 start
cd /etc/init.d/ && ./redis_6384 start
cd /etc/init.d/ && ./redis_6385 start
cd /etc/init.d/ && ./redis_6386 start

通過redis-trib.rb 創建redis cluster

redis-trib.rb 需要ruby環境,所以需要安裝ruby,只需要在一個node 中安裝操作即可,這裏在192.168.43.16 機器上安裝

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 //創建軟連接

創建集群

redis-trib.rb create --replicas 1 192.168.43.16:6381 192.168.43.16:6382 192.168.43.17:6383 192.168.43.17:6384 192.168.43.18:6385 192.168.43.18:6386

--replicas 表示每個master分配多少個slave

技術分享圖片 集群創建

上圖 yes 確認接收當前分配繼續完成集群創建

技術分享圖片 創建集群成功
檢查集群信息

redis-trib.rb check 192.168.43.16:6381

redis cluster集群部署