Redis高可用

2021-08-28  本文已影响0人  河神

复制

REPLICAOF

image

ROLE

主服务角色信息

image

从服务角色信息

image

数据同步

完整同步

在线更新 命令传播

部分同步

无须硬盘的复制

如何降低不一致

脚本复制

心跳检测

在命令传播的阶段,从服务器会每秒1次向主服务器发送心跳请求 ,用来:

哨兵

基于主从复制,可以自动实现切换主从结构

redis-sentinel和redis-server之间的关系

新主服务器的挑选规则

当Sentinel需要在多个从服务器中选择一个作为新的主服务器时,首先会根据以下规则从候选名单中剔除不符合条件的从服务器:

1)否决所有已经下线以及长时间没有回复心跳检测的疑似已下线从服务器。

2)否决所有长时间没有与主服务器通信,数据状态过时的从服务器。

3)否决所有优先级为0的从服务器。

然后根据以下规则,在剩余的候选从服务器中选出新的主服务器:

1)优先级最高的从服务器获胜。

2)如果优先级最高的从服务器有两个或以上,那么复制偏移量最大的那个从服务器获胜。

3)如果符合上述两个条件的从服务器有两个或以上,那么选出它们当中运行ID(运行ID是服务器启动时自动生成的随机ID,这条规则可以确保条件完全相同的多个从服务器最终得到一个有序的比较结果)最小的那一个。

集群

快速搭建集群

  1. 使用redis/utils/create-cluster 的工具类 ,创建6个节点
image
  1. 创建集群,默认配置 可以看到:

  2. Master[0] 的槽分配是 0 - 5460 Master[1] 的槽分配是 5461 - 10922 等等

  3. 将6个服务器分配为 3对 主从关系

image
  1. 此时的集群结构
image

命令转向

hash tag

重新分片

从服务的读权限

其他知识

上一篇 下一篇

猜你喜欢

热点阅读