1、創建集羣文件夾
在/usr/local/下新建redis-cluster目錄並在redis-cluster下新建7031~7036共6個文件夾(對應redis集羣的端口號),這6個文件夾代表創建redis集羣的6個節點。命令如下:
mkdir -p /usr/local/redis-cluster
mkdir 7031 7032 7033 7034 7035 7036
2、在redis-cluster目錄裏下載redis文件。命令如下:
cd /usr/local/redis-cluster
wget http://download.redis.io/releases/redis-4.0.12.tar.gz
tar xzf redis-4.0.12.tar.gz
cd redis-4.0.12
make
3、拷貝修改配置文件
將已有的/usr/local/redis-cluster/redis-4.0.12/下的redis.conf拷貝到新創建的7031目錄中。命令如下:
cd /usr/local/redis-cluster/redis-4.0.12/
cp redis.conf /usr/local/redis-cluster/7031
修改項如下:
(1)綁定端口,port 7031
(2)綁定IP,redis所在機器的ip,如:bind 192.168.2.128
(3)指定數據存放路徑,dir /usr/local/redis-cluster/7031
(4)啓動集羣模式,cluster-enabled yes
(5)指定集羣節點配置文件,cluster-config-file nodes-7031.conf
(6)後臺啓動,daemonize yes
(7)指定集羣節點超時時間,cluster-node-timeout 5000
(8)指定持久化方式,appendonly yes
上面紅色項目最好全部設置,不然會出意想不到的錯誤,703x最好與節點文件夾保持一致。
將7031的redis.conf改完後再拷貝到剩下的5個目錄中,然後只要全局替換redis.conf中的7031爲相應的節點即可。
4、安裝ruby
redis集羣的啓動需要用到ruby實現的redis-trib.rb,所以我們需要先安裝ruby。命令如下:
yum install ruby
yum install rubygems
gem install redis
注:如果在執行gem install redis時,出現下圖問題,見步驟9解決方案,或參考:https://blog.csdn.net/fengye_yulu/article/details/77628094
5、啓動redis,分別啓動6個redis實例。也可以用腳本循環啓動。命令如下:
for((i=1;i<=6;i++)); do /usr/local/redis-cluster/redis-4.0.12/src/redis-server /usr/local/redis-cluster/703$i/redis.conf; done
查看redis實例是否啓動成功。命令如下:
netstat -tunpl | grep redis-server
或者
ps -ef | grep redis-server
6、創建並啓動集羣
進入redis安裝目錄的src目錄下:
cd /usr/local/redis-cluster/redis-4.0.12
./redis-trib.rb create --replicas 1 192.168.2.128:7031 192.168.2.128:7032 192.168.2.128:7033 192.168.2.128:7034 192.168.2.128:7035 192.168.2.128:7036
命令的意義如下:
給定 redis-trib.rb 程序的命令是 create,表示創建一個新的集羣。選項 --replicas 1 表示爲集羣中的每個主節點創建一個從節點。
之後跟着的其他參數則是實例的地址列表, 指定使用這些地址所指示的實例來創建新集羣。
“All 16384 slots covered.”表示集羣中的 16384 個槽都有至少一個主節點在處理, 集羣運作正常。從打印出來的信息也可以看出,7031,7032,7033是主節點,其它三個是從節點。
7、客戶端連接集羣
集羣啓動成功後,我們可以在pc機上安裝RedisDesktopManager客戶端連接工具連接redis集羣,如圖:
RedisDesktopManager客戶端下載地址:https://pan.baidu.com/s/1kU8sY3P
8、集羣關閉
關閉集羣需要逐個關閉
for((i=1;i<=6;i++)); do /usr/local/redis-cluster/redis-4.0.12/src/redis-cli -c -h 192.168.2.128 -p 703$i shutdown; done
如果重新啓動集羣報以下錯誤:
需要清除殺掉redis實例,然後刪除每個節點下的臨時數據文件appendonly.aof,dump.rdb,nodes-703x.conf,然後再重新啓動redis實例即可啓動集羣。命令如下:
殺掉redis實例:
kill -s 9 1827(redis每個節點的pId)
刪除每個節點下的臨時數據文件:
cd /usr/local/redis-cluster/
for((i=1;i<=6;i++)); do cd 703$i; rm -rf appendonly.aof; rm -rf dump.rdb; rm -rf nodes-703$i.conf; cd ..; done
9、在執行gem install redis時,出現如下異常的處理
問題原因:CentOS7 yum庫中ruby的版本支持到 2.0.0,可gem 安裝redis需要最低是2.2.2
解決方案:
1)安裝RVM,命令如下:
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm
2)查看rvm庫中已知的ruby版本,命令如下:
rvm list known
查詢到內容如下:
3)安裝一個ruby版本
rvm install 2.3.3
4)使用一個ruby版本
rvm use 2.3.3
5)設置默認版本
rvm use 2.3.3 --default
6)卸載一個已知版本
rvm remove 2.0.0
7)查看ruby版本
ruby --version
如果顯示如下圖,則說明安裝ruby2.3.3成功
8)ruby2.3.3成功後,再安裝redis,並進行之後的步驟
gem install redis