redis的集群 redis-cluster
redis官方提供了redis-trib.rb工具,但是在使用之前 需要安装ruby,以及redis和ruby连接:
yum install -y ruby rubygems ruby-devel rpm-build
建立连接时报错
Centos默认支持ruby到2.0.0,可gem 安装redis需要最低是2.2.2,
解决办法是 先安装rvm,再把ruby版本提升至2.3.3
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -L get.rvm.io | bash -s stable
rvm install 2.3.3
ruby -v
gem -v
gem install redis -v 3.3.3(默认安装4.0.1版本有问题)
否则会出现添加主节点时迁移slot,有数据的slot迁移不成功出现报错:ERR CALLING migrate ,try Client........
这里在同一台服务器用不同的端口表示不同的redis服务器,如下:
主节点:192.168.1.120:7001 192.168.1.120:7002 192.168.1.120:7003
从节点:192.168.1.120:7004 192.168.1.120:7005 192.168.1.120:7006
cp redis.conf /usr/local/redis-cluster/7001
修改7001下的redis.conf若干参数
绑定端口,port 7001
绑定IP,bind 192.168.1.120
指定数据存放路径,dir /usr/local/redis-cluster/7001
启动集群模式,cluster-enabled yes
指定集群节点配置文件,cluster-config-file nodes-7001.conf
后台启动,daemonize yes
指定集群节点超时时间,cluster-node-timeout 5000
指定持久化方式,appendonly yes
将剩余的700x目录下的redis.conf参数都修改
启动六台redis
for((i=1;i<=3;i++));do redis-server /usr/local/redis-cluster/700$i/redis.conf;done
cd /usr/local/redis-4.0.2/src/
./redis-trib.rb create --replicas 1 192.168.1.120:7001 192.168.1.120:7002 192.168.1.120:7003 192.168.1.120:7004 192.168.1.120:7005 192.168.1.120:7006