阿里雲 Centos7.2 搭建redis 叢集
阿新 • • 發佈:2018-11-11
一、環境
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即可