本次使用的redis版本6.0.6
三台虚拟机,启动三个redis服务
进入客户端,使用命令 info replication查看当前redis的角色情况
配置一主两从
在默认情况下,每一台机器都主机,配置一主两从时只需要在从节点进行配置
如何配置从机:认老大!!
在使用命令之前需要确定reids的配置文件中 redis的本地保护模式为no,bind 127.0.0.1被注释掉
在从机上使用命令 slaveof ip port
出现上图表示从节点添加成功
然后在主节点上查看集群信息如下,表示一主两从配置成功。
如此搭建的集群从节点只能进行读取数据,不能进行写数据。
层层链路模式:
也可以三台机器 按照以下进行搭建,中间机器既是master也是slave,但是中间机器也是不能进行写入的
如果第一台机器断掉后,第二台机器还是从机的角色,手动使用命令slaveof no one 将第二台机器升级为主机,如果此时第一台机器修复好,节点仍旧为主机,但没有子节点。
哨兵模式:(自动选举主节点的模式)
能够自动监控主机是否发生故障,如果故障了根据投票数自动将从库转换为主库
这里的哨兵有两个作用
- 通过发送命令,让redis服务器返回其运行状态,包括主服务器和从服务器
- 当哨兵检测到master宕机,会自动将slave切换到master然后通过发布订阅模式通知其他的服务器,修改配置文件,让他们切换主机。
然而一个哨兵进程对redis服务器进行监控,可能会出现问题,所以可以使用多个哨兵进行监控,各个哨兵之间还会进行监控,这就形成了多哨兵模式。
配置哨兵模式配置文件:sentinel.conf
** # sentinel monitor 被监控的名称 host port 1
sentinel monitor myredis 192.268.0.104 6379 1
~~(如果需要配置三台哨兵修改启动端口即可,即copy出三个sentinel配置文件,每个配置文件中添加不同的端口 port 26379,淡然这是对伪哨兵模式的配置,如果真的启动三台机器无需修改启动端口)~~
后面的数字1代表主机挂了,slave投票看让谁接替成为主机,票数最多的,就会成为主机
启动哨兵模式:
在一主两从的基础上,启动一个哨兵节点
redis-sentinel sentinel.conf
启动哨兵后,如果主节点挂掉会在剩下的从节点中自动选举主节点,主节点回复之后会作为子节点继续对外工作
哨兵集群,基于主从模式,主从可以切换,故障可以转移,系统的可用性更好,但是扩展性不好,不支持在线扩容,一旦集群容量达到上限,在线扩容就是十分麻烦。
哨兵的所有配置
在这个三分钟时间内redis集群的写入功能是不可用的
springboot集成配置
https://github.com/lzw2656529282/testsecurity/tree/redis.sentinel