我制作的程序可以通过某些规则将数字转换为某些序列号,并检查是否使用了序列号。我使用redis进行检查工作。
首先,在slave中获取num1。当结果不为零时,表示使用序列号,因此返回'used'。
其次,如果结果为nil,则在master中设置num1并返回'new'(一旦返回,nums意味着'used')
问题是master在完成与slave同步的过程之前会崩溃,所以这个号码可能不在slave中。此时在slave中获取num1,它返回'new',但使用num1。
如何在redis中确保主站和从站之间的数据一致性?
答案 0 :(得分:0)
Redis使用异步复制,并且无法确保从属实际接收到给定的写入。总会有一个数据丢失的窗口。
答案 1 :(得分:0)
了解WAIT
命令 - 它允许您指定在采取进一步操作之前使用最新更改更新的从站数。