Redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片等特性,集群模式没有中心节点,可水平扩展,根据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点),但是水平扩展相对比较麻烦,接下来带大家看看如何做Redis高可用集群水平扩展。
原集群由6个Redis节点组成,分布在三台机器上,采用三主(master)三从(slave)的模式:
IP为192.168.1.6的机器Redis实例分别为,master:6380;slave:6379。
IP为192.168.1.7的机器Redis实例分别为,master:6381;master:6382。
IP为192.168.1.8的机器Redis实例分别为,master:6383;slave:6384。
接下来做Redis高可用集群水平扩展,在IP为192.168.1.6的机器上创建两个Redis实例,水平扩展之后变成四主(master)四从(slave)的集群模式,如下图:
1.通过客户端连接Redis实例
/usr/local/redis/bin/redis-cli -a 123456 -c -h 192.168.1.6 -p 6379
2.查看集群状态
192.168.1.6:6379>cluster nodes
从集群结果中可以看出整个redis集群运行正常,三个master主节点和三个slave从节点,主节点master分配了存储数据的hash槽位, 而slave节点是每个主节点的备份从节点,不显示存储槽位。
3.水平扩展集群操作
3.1 创建一主(master)一从(slave)Redis实例
cd /usr/local/redis/etc
#复制配置文件
cp redis-6380.conf redis-6385.conf
cp redis-6380.conf redis-6386.conf
#修改配置文件
vim redis-6385.conf
#端口号
port 6385
#pidfile的路径
pidfile /usr/local/redis/logs/redis-6385.pid
#日志文件的路径
logfile /usr/local/redis/logs/redis-6385.log
#持久化数据存放的目录
dir /usr/local/redis/data/6385/
#集群节点信息文件,最好与port端口对