首先下載redis源碼包
http://download.redis.io/releases/
我選擇的是4.0.9版本
在/home目錄下解壓
tar -zxvf redis-4.0.9.tar.gz
cd 到/home/redis-4.0.9目錄下編譯
make報錯
yum安裝gcc
yum install gcc -y
再make產生新的錯誤
執行命令
make MALLOC=libc
然后執行
make install PREFIX=/home/redis-4.0.9/redis-cluster
自動創建了redis-cluster/bin 目錄,並將一些執行文件復制到bin目錄
將redis.conf配置文件復制到redis-cluster目錄下
在redis-cluster目錄下創建7001 7002 7003 7004 7005 7006共6個目錄
並復制配置文件redis.conf,修改
daemonize yes #后台啟動
port 7001 #修改端口號,從7001到7006
cluster-enabled yes #開啟cluster,去掉注釋
cluster-config-file nodes.conf #自動生成
cluster-node-timeout 15000 #節點通信時間
appendonly yes #持久化方式
安裝redis-trib所需的 ruby腳本
注意:centos7默認的ruby版本太低(2.0),要卸載重裝(最低2.2)
yum install centos-release-scl-rh //會在/etc/yum.repos.d/目錄下多出一個CentOS-SCLo-scl-rh.repo源
yum install rh-ruby23 -y
scl enable rh-ruby23 bash //必要一步
ruby -v
gem install redis
然后,redis-trib.rb這個二進制文件就可以使用了
注意:
登錄的時候可能不能使用ruby相關命令,因此需要加載環境變量
設置登錄時自動啟動ruby
vi /etc/profile.d/rh-ruby23.sh
#!/bin/bash
scl enable rh-ruby23 bash
export PATH=$PATH:/home/redis-4.0.9/src
啟動所有的redis節點
bin/redis-server 7001/redis.conf
bin/redis-server 7002/redis.conf
bin/redis-server 7003/redis.conf
bin/redis-server 7004/redis.conf
bin/redis-server 7005/redis.conf
bin/redis-server 7006/redis.conf
注意:這里並沒有創建集群
使用redis-trib.rb創建集群
注意:redis-trib.rb在redis/src目錄下
./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
使用create命令 --replicas 1 參數表示為每個主節點創建一個從節點,其他參數是實例的地址集合。
redis集群的測試
客戶端連接集群redis-cli需要帶上 -c ,redis-cli -c -p 端口號
根據redis-cluster的key值分配,name應該分配到節點7002[5461-10922]上,上面顯示redis cluster自動從7001跳轉到了7002節點
查看7002節點
redis-trib.rb check 127.0.0.1:7002
現在模擬7002節點故障
kill -9 該節點的進程號
然后再重新啟用,會發現原來的從節點變成主節點,7002主節點變成從節點