CentOS搭建Redis-cluster。corrupte cluster config file;redis requires Ruby version;can‘t connect to node
1. 配置redis-cluster
1.1 先在CentOS安装Redis,然后再配置redis-cluster。首先创建两个目录用于存放redis-cluster的配置文件、日志信息以及持久化文件,如下图。
1.2 复制一份redis安装目录下的redis.conf配置文件至redis-cluster配置文件目录/etc/redis-cluster,命名为7001.conf并进行下列参数设置,注意cluster-config-file的文件名设置,如果存在覆盖情况,会报错Unrecoverable error:corrupted cluster config file。
bind 192.168.56.101 # bind本机地址,而不是127.0.0.1 port 7001 # 方便集群管理 daemonize yes # 后台运行 pidfile "/var/run/redis_cluster_7001.pid" # 运行产生的进程文件 logfile "/var/redis-cluster/7001.log" # 日志文件 dir "/var/redis-cluster/7001" # 持久化目录 appendonly yes # 设置仅仅从aof备份文件恢复数据cluster-enabled yes # 开启redis-cluster cluster-config-file /etc/redis-cluster/n_7001.conf # redis-cluster配置文件路径不要和7001.conf文件重名,不然redis启动后该文件会覆盖原文件 cluster-node-timeout 10000 # 节点宕机时长1.3 因为是3主3从,最终使用3台虚拟机来实现,所以一台虚拟机要配置两个redis-cluster,所以在当前虚拟机再类似配置一个7002,然后在另外两台虚拟机上配置7003、7004和7005、7006。本机的7002只需将1.2中参数的7001换成7002即可;其它机器7003等除了将7001进行替换,还需要修改bind的IP地址。
1.4 配置redis-cluster启动脚本,将/etc/init.d的redis_6379复制并分别命名为redis_cluster_7001和redis_cluster_7002......,更改该文件的REDISPORT参数为我们设置的端口7001、7002.....。同时更改pidfile和dir两个参数(改为我们上面已设置的pidfile路径以及cluster-config-file的路径),如下图。
2. 创建redis-cluster集群
yum install ruby # 因为cluster的管理需要rb文件,所以需要安装ruby yum install rubygems gem install redis # 安装失败,可看接下来的解决方案# 复制到/usr/local/bin目录的文件可直接执行 cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin # 使用redis-trib.rb创建Redis集群 redis-trib.rb create --replicas 1 192.168.56.101:7001 192.168.56.101:7002 192.168.56.102:7003 192.168.56.102:7004 192.168.56.103:7005 192.168.56.103:70062.1 使用gem安装Redis失败,提示ERROR: Error installing redis: redis requires Ruby version >= 2.3.0. 其实就是Ruby版本较低,升级Ruby貌似有点复杂,那就直接去gem官网下载redis.gem文件呗,我的redis是3.2.8版本,gem网上没有对应版本,于是下载了3.2.2版本的。下载后使用 gem install redis.3.2.2.gem 即可,如下图。
2.2 使用redis-trib.rb创建redis-cluster时失败,提示,can't connect to node 192.168.56.102。
但是ping可以ping通,而且Redis没有设置密码。这时想起来之前手动搭建Redis集群时,也碰到连不上其它主机的情况,除了网络问题,其实就是ip地址没有使用真正的ip地址,而是使用127.0.0.1这种本地地址。使用 find / -name client.rb 指令找到配置文件client.rb,如下图。
然后可以看到里面的配置如下图,将host改为本机地址,port改为其中一个,如7001。
然后Redis全部重启,再次执行创建集群指令即可。
最后创建redis-cluster成功如下图。
还可通过以下指令查看,输出结果和上面一致。
总结
以上是生活随笔为你收集整理的CentOS搭建Redis-cluster。corrupte cluster config file;redis requires Ruby version;can‘t connect to node的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Python多进程multiproces
- 下一篇: CentOS6.5安装MySQL5.1.