1. 程式人生 > >阿里雲 Centos7.2 搭建redis 叢集

阿里雲 Centos7.2 搭建redis 叢集

一、環境

1.Centos7.2 三臺

2.Redis叢集要求至少要有三個節點,我這裡配置三臺,每臺一主一備。

3.埠號 6379-6384  需要在阿里雲 安全策略中開通埠,同時要開通16379-16384(叢集匯流排埠為redis客戶端連線的埠 + 10000)

二、安裝過程

1.安裝路徑 

mkdir /opt/redis

2.進入安裝路徑,執行下載安裝編譯

yum -y install gcc 
wget http://download.redis.io/releases/redis-3.2.8.tar.gz 
tar zxf redis-3.2.8.tar.gz 
cd redis-3.2.8 
make &;&; make install 

3.配置節點

mkdir /etc/redis
cp redis.conf /etc/redis/6379.conf 
vi /etc/redis/6379.conf 
修改配置檔案以下幾項:
bind 0.0.0.0 #
daemonize yes # 後臺執行
cluster-enabled yes # 啟用叢集

其他的節點的配置檔案可以複製,但是需要更改以下幾個配置 (根據實際埠號進行修改)

port 6379                              #更改埠號6379
pidfile /var/run/redis_6379.pid        #更改埠號6379
appendonly no                          #改為yes
cluster-config-file nodes-6379.conf    #更改埠號6379

4.建立叢集

啟動redis,以一個節點為例

redis-server /etc/redis/6379.conf 

建立叢集需要Ruby指令碼支援,安裝ruby

yum -y install ruby rubygems 

建立節點,ip分別為三臺主機的ip ,每臺有兩個節點

src/redis-trib.rb create IP:6379 IP 6380 IP:6381 IP:6382 IP:6383 IP:6384

5.測試

redis-cli -h IP -c 

三、問題總結

1.卡在Waiting for the cluster to join 

解決:

叢集匯流排埠未開通,叢集匯流排埠為redis客戶端連線的埠 + 10000

2.redis 叢集建立失敗後,無法重新建立

/usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.2/lib/redis/client.rb:119:in `call': ERR Slot 0 is already busy (Redis::CommandError)

解決:

連線節點操作

 redis-cli -c -p 6379

flushdb

cluster reset

然後清除 /etc/redis 下的nodes開頭的檔案和 dump.rdb,然後重啟redis即可