您能否解释一下Redis的复制功能

时间:2020-09-04 12:28:27

标签: redis

我对REDIS缓存的实现非常陌生。

  1. 能否让我知道复制因子是什么意思?
  2. 它是如何工作的或有什么影响? 谢谢。

1 个答案:

答案 0 :(得分:0)

在Redis复制的基础上(不包括Redis Cluster或Redis Sentinel作为附加层提供的高可用性功能),使用和配置领导者跟随者(主从)复制非常简单:它允许副本Redis实例是主实例的精确副本。每次链接断开时,副本将自动重新连接到主服务器,并且无论主服务器发生什么情况,它都将尝试作为副本的精确副本。

该系统使用三种主要机制工作:

  1. 当主节点和副本实例连接良好时,主节点通过向副本发送命令流来使副本保持更新,以便复制由于以下原因而对主节点上发生的数据集产生的影响: ,键已过期或已退出,其他任何操作都会更改主数据集。
  2. 当主服务器和副本服务器之间的链接中断时,由于网络问题或由于在主服务器或副本服务器中检测到超时,副本服务器将重新连接并尝试进行部分重新同步:这意味着它将尝试获取断开连接期间错过的部分命令流。
  3. 当不可能进行部分重新同步时,副本将要求完全重新同步。这将涉及到一个更复杂的过程,在该过程中,主数据库需要创建其所有数据的快照,将其发送到副本,然后在数据集更改时继续发送命令流。

默认情况下,Redis使用异步复制(低延迟和高性能)是绝大多数Redis用例的自然复制模式。

客户端可以使用WAIT命令请求某些数据的同步复制。但是,WAIT仅能确保其他Redis实例中具有指定数量的已确认副本,它不会将一组Redis实例转换为具有高度一致性的CP系统:在故障转移期间,仍会丢失已确认的写入,具体取决于关于Redis持久性的确切配置。但是,使用WAIT,在发生故障事件后丢失写操作的可能性会大大降低,从而难以触发某些故障模式。