一、搭建环境
服务器:mac
redis版本:6.2.4
二、操作步骤
未安装redis的看官们可以参照mac redis搭建主从模式,本篇默认已安装完
1、配置集群文件
集群的配置文件和主从配置所使用的配置文件是一样的,都是在redis.conf的基础上进行部分修改就行,下图是具体的配置:
# 设置redis以守护进程的方式启动
daemonize yes
# 设置redis节点端口号
port 8001
# 设置数据存放目录(此目录需要自己建,不建会报错)
dir "/usr/local/var/db/redis-cluster/8001/"
# 核心配置
# 设置节点是否以集群的方式启动
cluster-enabled yes
# 设置集群节点信息记录文件
cluster-config-file node-8001.conf
# 设置节点间通信的超时时间(单位为:ms)
cluster-node-timeout 5000
# 需要注意的是,下方这个配置需要注释掉,否则只能链接本机的节点
# bind 127.0.0.1
# 关闭保护模式(该配置的效果和上一个一致)
protected-mode no
# 启动aof持久化配置
appendonly yes
# 如果需要密码添加如下配置
requirepass 123456
# 配置集群间的通信密码(该密码需要和上方的一致)
masterauth 123456
完成以上配置后,集群的一个节点配置就完成了,其它节点只需变动端口号即可。
注意:集群模式下的主从节点不需要手动配置,当集群启动时,redis会默认把启动指令的前n个节点做为主节点,后面的n个节点依次挂载到前方的主节点下
2、启动集群节点
构建集群有一个特殊的指令,但是在使用这个指令之前还是需要将所有的redis集群节点以传统的指令启动,指令如下:
/usr/local/opt/redis/bin/redis-server /usr/local/etc/cluster/redis-8001.conf
注意:笔者这里的集群redis配置文件是另外建了一个cluster目录来存放的
当所有的节点启动完成后,效果如下:
笔者在本地搭建了六个redis节点,三主三从,每个节点服务的后面都有一个特殊的标志:[cluster]。这个标志标明该节点为集群节点。
3、构建redis集群
构建集群指令如下:
/usr/local/opt/redis/bin/redis-cli -a 123456 --cluster create --cluster-replicas 1 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 127.0.0.1:8005 127.0.0.1:8006
- -a:表示集群之间的通信密码
- –cluster create:集群创建所使用的特殊指令
- –cluster-replicas:表示每个主节点下的从节点个数(笔者这里配置的是1,表示每个主节点下方有一个从节点)
注意:该指令只有在第一次构建集群的时候有效,如果集群构建完成后关闭了集群想要再次启动的话,无需使用该指令。只需要把每个节点按传统的方式启动即可,所有节点启动完成后,redis会按照之前的集群配置来分配每个节点的角色信息
4、查看集群是够构建成功
登陆任意一个节点内部,使用如下指令:
cluster nodes
节点构建成功如下图:
三、测试
测试用例与哨兵模式的测试用例一致,只需要更改部分springboot的配置信息即可,如下图:
spring.redis.database=0
spring.redis.timeout=3000
spring.redis.password=123456
#spring.redis.sentinel.master=mymaster
#spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381
spring.redis.cluster.nodes=127.0.0.1:8001,127.0.0.1:8002,127.0.0.1:8003,127.0.0.1:8004,127.0.0.1:8005,127.0.0.1:8006
spring.redis.lettuce.pool.max-idle=50
spring.redis.lettuce.pool.min-idle=10
spring.redis.lettuce.pool.max-active=100
spring.redis.lettuce.pool.max-wait=1000