复制期间的一致性

说明非阻塞 Redis 写入作和复制上的阻塞写入作从应用程序到代理再到分片的顺序写入作。

Redis 企业软件

Redis Enterprise Software 具有复制数据的能力 到另一个数据库实例以实现高可用性,并将内存中数据持久化在 disk 的持久性。使用WAIT命令,您可以 控制复制和 持久化数据库。

非阻塞 Redis 写入作

向数据库发出的任何更新通常使用以程执行:

  1. 应用程序发出写入。
  2. 代理与系统中包含给定密钥的正确主分片(也称为主分片)进行通信。
  3. 分片写入数据并向代理发送确认。
  4. 代理将确认发送回应用程序。
  5. 写入从主分片传送到副本。
  6. 副本确认写回主分片。
  7. 对副本的写入将持久化到磁盘。
  8. 在副本中确认写入。

阻止复制写入作

使用WAITWAITAOF命令,应用程序可以要求等待 仅在确认复制或持久性后确认 副本。写入作流程WAITWAITAOF是:

  1. 应用程序发出写入。
  2. 代理与系统中包含给定键的正确主分片通信。
  3. 复制将更新传达给副本分片。
  4. 如果使用WAITAOF和 AOF every write 设置时,副本会在发送确认之前将更新保存到磁盘。
  5. 确认通过步骤 5 到 8 从副本一直发送回代理。

应用程序只有在通过复制到副本实现持久性后,才会从写入中获得确认WAITWAITAOF以及 持久存储WAITAOF只。

WAITcommand 始终返回确认当前客户端发送的写入命令的副本数,这些副本数在WAIT命令,无论是在达到指定副本数的情况下,还是在达到超时时。在 Redis Enterprise Software 中,启用了 HA 的数据库的副本数始终为 1。

请参阅WAITAOF命令,详细了解 Redis 7.2 中引入的增强数据安全性和持久性功能。

为本页评分
返回顶部 ↑