cluster集群的搭建:
环境准备: 需要三台主机.端口划分:
192.168.181.4 端口: 7001, 7002
192.168.181.5 端口: 7003, 7004
192.168.181,6 端口 : 7005, 7006
1. 修改主机的配置文件,这里以修改7001,7002 为例:依次执行一下命令
# cp /root/redis-6.2.3/redis.conf /root/redis-6.2.3/redis_7001.conf
# cp /root/redis-6.2.3/redis.conf /root/redis-6.2.3/redis_7002.conf
# mkdir -p /var/log/redis/cluster
# mkdir -p /root/redis-6.2.3/cluster/{redis_7001,redis_7002}
- 修改Redis_700conf的配置文件: 内容如下:
-
# vim redis_7001.conf bind 192.168.181.4 port 7001 daemonize yes pidfile "/var/run/redis_7001.pid" //默认路劲 logfile "/var/log/redis/cluster/redis_7001.log" //创建的日志文件所在路径 dir "/root/redis-6.2.3/cluster/redis_7001" //所创建的cluster文件所在路径. masterauth “123456” requirepass “123456” appendonly yes cluster-enabled yes cluster-config-file nodes_7001.conf cluster-node-timeout 15000
# vim redis_7002.conf bind 192.168.181.4 port 7002 daemonize yes pidfile "/var/run/redis_7002.pid" //默认的路劲 logfile "/var/log/redis/cluster/redis_7002.log" // dir /root/redis-6.2.3/cluster/redis_7002" masterauth "123456" requirepass "123456" appendonly yes cluster-enabled yes cluster-config-file nodes_7002.conf cluster-node-timeout 15000
其余主机配置相同,但需要特别注意路径,因为每台主机上Redis目录所在的位置可能不同.
然后依次启动各个主机的Redis:在Redis目录下使用如下命令: ./src/redis-server redis_7001.conf ,
然后追踪日志文件: tail -f /var/log/redis/cluster/redis_7001.log
可能会出现警告,是因为设备空间默认分配太小,需要扩大:执行如下命令:
echo > 1024 /proc/sys/net/core/ somaxconn
每台主机上各个节点上启动后都没问题下,下一步创建集群.
搭建集群:
在任意节点上创建集群:命令如下:
./src/redis-cli -a 123456 --cluster create 192.168.181.4:7001 192.168.181.4:7002 192.168.181.5:7003 192.168.181.5:7004 192.168.181.6:7005 192.168.181.6:7006 --cluster-replicas 1
这里可能会出现错误:
replace with error
出错的原因: 之前配置的Redis密码,可能产生了影响,
可以通过以下命令: 解决:
首先进入:Redis的客户端 ./src/redis-cli -h ip -p 7002
然后使用: config set requirepass 123456(密码)
然后:auth 123456
就可以配置完成了.我各个节点的在这个过程中都出现了以上问题,所以每个节点上,上面的命令都执行一遍,
然后重新搭建集群:
输入yes后,就可以看到各个节点之间的主从关系表.同时也会自动的生成nodes.conf文件.
至此搭建集群就算初步完成了,后面可以尝试在面录入数据进行测试,也可以测试增加节点和删除节点.
登录集群:
# redis-cli -c -h ip -p 7001 -a 123456 # -c,使用集群方式登录
CLUSTER INFO #查看集群状态
CLUSTER NODES #列出节点信息
CLUSTER MEET IP 节点号 # 增加节点
CLUSTER FORGET 节点号 #删除节点
CLUSTER SAVECONFIG #将节点配置信息保存到硬盘
redis cluster集群是去中心化的,每个节点都是平等的,连接哪个节点都可以获取和设置数据。
当然,平等指的是master节点,因为slave节点根本不提供服务,只是作为对应master节点的一个备份。