1/3
- 下载图片
- 复制图片
满脑袋芝士
频道主
#Redis 怎么实现Redis的高可用?
redis要保证高可用,有2个可选方案。
主从架构
主从模式是最简单的实现高可用的方案,核心就是主从同步。主从同步的原理如下:
发送sync命令到master
收到sync之后,执行bgsave,生成RDB全量文件
把slave的写命令记录到缓存
执行完毕之后,发送RDB文件到slave,slave执行
发送缓存中的写命令到slave,slave执行
哨兵
基于主从方案的缺点还是很明显的,假设master宕机,那么就不能写入数据,那么slave也就失去了作用,整个架构就不可用了。而哨兵(sentinel)的功能比单纯的主从架构全面的多了,它具备自动故障转移、集群监控、消息通知等功能。
哨兵可以同时监视多个主从服务器,并且在被监视的master下线时,自动将某个slave提升为master,然后由新的master继续接收命令。整个过程如下:
1.初始化sentinel,将普通的redis代码替换成sentinel专用代码
2.初始化masters字典和服务器信息,服务器信息主要保存ip:port,并记录实例的地址和ID
3.创建和master的两个连接,命令连接和订阅连接,并且订阅sentinel:hello频道
4.每隔10秒向master发送info命令,获取master和它下面所有slave的当前信息
5.当发现master有新的slave之后,sentinel和新的slave同样建立两个连接,同时每个10秒发送info命令,更新master信息
6.sentinel每隔1秒向所有服务器发送ping命令,如果某台服务器在配置的响应时间内连续返回无效
回复,将会被标记为下线状态
7.选举出领头sentinel,领头sentinel需要半数以上的sentinel同意
8.领头sentinel从已下线的的master所有slave中挑选一个,将其转换为master
9.让所有的slave改为从新的master复制数据
10.将原来的master设置为新的master的从服务器,当原来master重新回复连接时,就变成了新
master的从服务器
redis要保证高可用,有2个可选方案。
主从架构
主从模式是最简单的实现高可用的方案,核心就是主从同步。主从同步的原理如下:
发送sync命令到master
收到sync之后,执行bgsave,生成RDB全量文件
把slave的写命令记录到缓存
执行完毕之后,发送RDB文件到slave,slave执行
发送缓存中的写命令到slave,slave执行
哨兵
基于主从方案的缺点还是很明显的,假设master宕机,那么就不能写入数据,那么slave也就失去了作用,整个架构就不可用了。而哨兵(sentinel)的功能比单纯的主从架构全面的多了,它具备自动故障转移、集群监控、消息通知等功能。
哨兵可以同时监视多个主从服务器,并且在被监视的master下线时,自动将某个slave提升为master,然后由新的master继续接收命令。整个过程如下:
1.初始化sentinel,将普通的redis代码替换成sentinel专用代码
2.初始化masters字典和服务器信息,服务器信息主要保存ip:port,并记录实例的地址和ID
3.创建和master的两个连接,命令连接和订阅连接,并且订阅sentinel:hello频道
4.每隔10秒向master发送info命令,获取master和它下面所有slave的当前信息
5.当发现master有新的slave之后,sentinel和新的slave同样建立两个连接,同时每个10秒发送info命令,更新master信息
6.sentinel每隔1秒向所有服务器发送ping命令,如果某台服务器在配置的响应时间内连续返回无效
回复,将会被标记为下线状态
7.选举出领头sentinel,领头sentinel需要半数以上的sentinel同意
8.领头sentinel从已下线的的master所有slave中挑选一个,将其转换为master
9.让所有的slave改为从新的master复制数据
10.将原来的master设置为新的master的从服务器,当原来master重新回复连接时,就变成了新
master的从服务器
2024-10-31
浏览57
登录后评论
1
评论
分享