版权声明:Boomlee https://blog.csdn.net/BoomLee/article/details/82884680
一、环境
1.Centos7.2 三台
2.Redis集群要求至少要有三个节点,我这里配置三台,每台一主一备。
3.端口号 6379-6384 需要在阿里云 安全策略中开通端口,同时要开通16379-16384(集群总线端口为redis客户端连接的端口 + 10000)
二、安装过程
1.安装路径
mkdir /opt/redis
2.进入安装路径,执行下载安装编译
yum -y install gcc
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar zxf redis-3.2.8.tar.gz
cd redis-3.2.8
make &;&; make install
3.配置节点
mkdir /etc/redis
cp redis.conf /etc/redis/6379.conf
vi /etc/redis/6379.conf
修改配置文件以下几项:
bind 0.0.0.0 #
daemonize yes # 后台运行
cluster-enabled yes # 启用集群
其他的节点的配置文件可以复制,但是需要更改以下几个配置 (根据实际端口号进行修改)
port 6379 #更改端口号6379
pidfile /var/run/redis_6379.pid #更改端口号6379
appendonly no #改为yes
cluster-config-file nodes-6379.conf #更改端口号6379
4.创建集群
启动redis,以一个节点为例
扫描二维码关注公众号,回复:
3608739 查看本文章
redis-server /etc/redis/6379.conf
创建集群需要Ruby脚本支持,安装ruby
yum -y install ruby rubygems
创建节点,ip分别为三台主机的ip ,每台有两个节点
src/redis-trib.rb create IP:6379 IP 6380 IP:6381 IP:6382 IP:6383 IP:6384
5.测试
redis-cli -h IP -c
三、问题总结
1.卡在Waiting for the cluster to join
解决:
集群总线端口未开通,集群总线端口为redis客户端连接的端口 + 10000
2.redis 集群创建失败后,无法重新创建
/usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.2/lib/redis/client.rb:119:in `call': ERR Slot 0 is already busy (Redis::CommandError)
解决:
连接节点操作
redis-cli -c -p 6379
flushdb
cluster reset
然后清除 /etc/redis 下的nodes开头的文件和 dump.rdb,然后重启redis即可