redis集群配置参数:
cluster-enabled :yes/no。是否启用redis集群支持,默认作为独立的redis实例启动。
cluster-config-file:filename。不可编辑文件,redis用来在持久化集群配置信息以便在每次启动都能读取。文件中列出集群当中所有的节点,状态,持久化变量。由于某些消息接收,通常会将此文件重写并刷新到磁盘上。
cluster-node-timeout:milliseconds。节点连接超时时间。
cluster-slave-validity-factory:factor。如果设置为0,slave总会故障转移到master上,不管master和slave之间还有多少连接。如果设置为正数,会根据超时间和该值相乘计算最长断开时间。例如超时时间设置为5,factory设置为10,则最长断开时间九尾50秒,超过50秒后就不会再尝试故障转移到该台master。
cluster-migration-barrier:count。master可以连接的最小slave。
cluster-require-full-coverage:yes/no。默认值为yes,如果一些key空间一直都没被任何节点覆盖的时候集群停止接受写入请求。
最小化的redis集群配置文件如下:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
测试建立一个redis 集群,共6个redis实例,3个作为master,3个作为slave。
在redis目录下创建6个目录,以端口号创建为目录名称,作为redis实例所在目录。在redis每个redis中修改redis.conf配置文件,修改如上配置信息。使用如下命令创建redis集群,测试服务器的地址为192.168.152.133
./redis-trib.rb create --replicas 1 192.168.152.133:7000 192.168.152.133:7001 192.168.152.133:7002 192.168.152.133:7003 192.168.152.133:7004 192.168.152.133:7005
执行过程中肯定会出现异常情况,需要安装ruby依赖。使用源码的方式安装,从https://www.ruby-lang.org/en/downloads/该链接中下载对应版本的安装包,上传到制定目录。
//解压文件
#tar -zxvf ruby-2.5.3.tar.gz
#cd ruby-2.5.3
#./configure
#make
#make install
默认情况下安装在/usr/local/lib/下,为了能够在path中找到,徐将ruby添加到path当中。完成后安装gem redis依赖,安装之前需安装zlib-dev依赖
#yum install zlib-devel
安装完成后进入 /usr/bin/ruby/ruby-2.5.3/ext/zlib执行如下命令:
#ruby ./extconf.rb
#make
#make intall
执行过程中如果出现:make: *** No rule to make target /include/ruby.h', needed by
zlib.o'. Stop。则按照如下方法操作:
vi /usr/bin/ruby/ruby-2.5.3/ext/zlib/Makefile
//替换如下内容
#zlib.o: $(top_srcdir)/include/ruby.h
zlib.o: ../../include/ruby.h
最后执行gem install redis完成安装。在创建集群的时候不能使用域名或则hostname,需使用ip地址。
集群创建完成后使用命令检查节点状态:
./redis-trib.rb check ip:port
如果检查结果不是OK,可以使用命令进行修复
./redis-trib.rb fix ip:port
添加slave节点:
1,使用add-node子命令添加一个节点
./redis-trib.rb add-node new_node_ip:port master_ip:port
2,连接新节点
./redis-trib.rb -h ip -p port
3,创建复制
cluster repliate master_node_id
删除slave节点
./redis-trib.rb del-node ip:port "node_id"
网友评论