redis中如何保证master和slave之间的数据一致性

how to ensure data consistency between master and slave in redis

我制作了一个程序,可以根据一些规则将数字转换为一些序列号,并检查是否使用了序列号。而我使用redis做检查工作。

首先,获取slave中的num1。当 result 不为 nil 时,表示使用了序列号,所以 return 'used'.

其次,如果结果为零,则在 master 中设置 num1 和 return 'new'(一旦 return,nums 表示 'used')

问题是 master 在完成与 slave 的同步过程之前会崩溃,所以这个数字可能不在 slave 中。此时在slave中获取num1,它return'new',但是num1被使用了

redis如何保证master和slave的数据一致性?

Redis 使用异步复制,无法确保从服务器确实收到给定的写入。总会有一个 window 表示数据丢失。

Replication Docs

阅读有关 WAIT 命令的信息 - 它允许您指定在采取进一步操作之前使用最新更改更新的从站数量。