Redis主从复制架构
Redis主从复制架构
主从复制架构
主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据
主从复制架构图

搭建主从复制环境
# 1 创建 master salve1 salve2 三个目录
mkdir master salve1 salve2
# 2 准备三台机器并修改配置
- master
port 6379
bind 0.0.0.0
- slave1
port 6380
bind 0.0.0.0
slaveof masterip masterport
replicaof masterip masterport
- slave2
port 6381
bind 0.0.0.0 //开启远程连接
slaveof masterip masterport
//redis 5 版本之后
replicaof masterip masterport

# 3 启动3台机器进行测试
cd /usr/redis/bin
./redis-server /root/master/redis.conf
./redis-server /root/slave1/redis.conf
./redis-server /root/slave2/redis.conf
存在问题
无法解决master节点出现故障的自动故障转移功能
Redis哨兵机制
哨兵Sentinel机制
Sentinel(哨兵)是Redis的高可用性解决方案;由一个或多个Sentinel实例 组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级微信的主服务器,简单的说哨兵就是带有自动故障转移功能的主从架构.
哨兵架构原理
如图:

在Server1 掉线后:

升级Server2 为新的主服务器:

搭建哨兵架构
# 1 在主节点上创建哨兵配置
- 在Master对应redis.conf同目录下新建sentinel.conf文件 名字绝对不能错
# 2 配置哨兵,在sentinel.conf文件中填入内容:
- sentinel monitor 被监控数据库名字 ip port 1
说明:这个后面的数字1,是指当有一个及以上的sentinel服务检测到master宕机,才会去执行主从切换的功能
# 3 启动哨兵模式进行测试
- redis-sentinel /myredis/sentinel.conf

当port 6379重新上线后

存在问题
1.单节点的并发压力问题
2.单节点内存和磁盘物理上限
通过Springboot操作哨兵
#redis sentinel 配置
#master对应redis中sentinel.conf的master名字
spring.redis.sentinel.master=mymaster
#连接的不再是一个具体redis主机,书写的是多个哨兵节点
spring.redis.sentinel.nodes=39.99.236.216:26379
注意:如果出现了远程连接错误
解决方案:在哨兵的配置文件中加入
bind 0.0.0.0 //开启远程连接

浙公网安备 33010602011771号