提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
一、redis主从与集群
一主一从
一主多从
树状结构
默认从节点只能读。
主从复制原理
在redis2.8以上用psync解决主从复制,增加了部分复制的功能
全量复制:
1.判断是否初次复制,是则返回-1
2.发送ID以及其他的信息
3.主节点bgsave,生成rdb文件
4.发送rdb文件
5.主继续进行写入缓冲区
6.从节点解压rdb文件
7.从节点接收缓冲区的文件
8.从节点开启了AOF,则进行bg重写
部分复制(解决网络连接问题):
1.全量复制失败
2.网络恢复
3.从节点发送偏移量
4.主节点进行判断,是否在复制积压缓冲区,如果在则发生部分复制,如果不在则重新全量复制
哨兵实现原理之三个定时任务:
INFO任务(10秒)负责发现和更新集群拓扑,确保哨兵知道所有需要监控的节点
发布订阅任务(2秒)负责哨兵间的状态 同步,为客观下线和领导者选举提供决策依据
PING任务(1秒)负责实时检测节点健康状态,触发故障发现流程
主观下线:默认3s无回应则主观下线,n+1
客观下线:n达到配置值/2+1,则认为客观下线,开始选举
redis集群是多主多从
设置步骤:1.声明为主节点
2.绑定从节点
3.分配槽;数据只会存储在对应的槽
为什么槽的数量是16383:
1.占带宽问题
2.节点只会小于1000个
3.哈希槽以bitmap格式保存,压缩/N
综上,16383是一个算出来比较不错的数字