2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂度大大降低。
redis集群提供了以下两个好处
1、将数据自动切分(split)到多个节点
2、当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。
一、集群规划
Redis集群最少需要三台主服务器,三台从服务器
本人环境时是虚机centos7,ip地址110在这里复制6个Redis实例,根据端口来区分
分别为7001、7002、7003、7004、7005、7006。
如果有条件的化可以虚拟化6台虚机,或者物理机来安装。
具体安装步骤如下:
一、安装Ruby环境
yum -y install ruby ruby-devel ruby gems rpm-build
gem install redis
注意:redis5以后不在使用ruby语言实现的工具来启动redis集群,所以redis5及之后版本可忽略此操作
二、搭建并使用Redis集群(RedisCluster)
本人将该目录放在了Redis目录下面
cd /usr/local/redis
mkdir cluster
cd cluster
cp /usr/local/app/redis-5.0.5/src/redis-cli ./cluster
cp bin ./cluster/7001/ -r
vi redis.conf
需要改的内容有:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
cp 7001/ 7002 -r
cp 7001/ 7003 -r
cp 7001/ 7004 -r
cp 7001/ 7005 -r
cp 7001/ 7006 -r
./redis-server redis.conf
查看redis是否正常启动
ps -ef | grep redis
redis5.0开始不再使用ruby搭建集群
使用命令 redis-cli
./redis-cli --cluster create 192.168.1.110:7001 192.168.1.110:7002 192.168.1.110:7003 192.168.1.110:7004 192.168.1.110:7005 192.168.1.110:7006 --cluster-replicas 1
这个命令在这里用于创建一个新的集群, 选项 --replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
之后跟着的其他参数则是这个集群实例的地址列表,3个master3个slave redis-trib 会打印出一份预想中的配置给你看,如果你觉得没问题的话,就可以输入 yes ,redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯。
三、客户端连接集群
./redis-cli –h 192.168.1.110 –p 7001 –c
注意:-c 表示是以redis集群方式进行连接
四、查看集群的命令
cluster info
cluster nodes
五、问题汇总
Node 192.168.206.130:7001 is not empty.Either the node already knows....异常
删除集群节点目录下的dump.rdb、node.conf,
连接每个节点,清空节点下的数据
执行命令:flushbd