【问题标题】:How is it ensured that a user is not reading stale(not yet synced) data from read only Redis slave?如何确保用户不会从只读 Redis 从站读取陈旧(尚未同步)的数据?
【发布时间】:2022-01-05 13:01:20
【问题描述】:

我正在学习 Redis 复制,我了解以下事实

1. By Default replicas are read only.
2. All writes happen to master
3. Master writes changes to internal buffer and then sends them slave for sync
4. Slave receives the buffered information and writes them to their memory

我对此有疑问/好奇 -

让我们假设 主人有一个key:value 作为name:rishi。 这个键值在slave中也是同步/复制的。

现在用户用新值name:coder更新键名,master将数据放入内部缓冲区以使其与slave/s同步。

那么,在 slave 更新之前,Redis 会针对“name”键进行读取查询,是否有可能从 slave 中读取过时的数据?

【问题讨论】:

    标签: caching redis distributed-system


    【解决方案1】:

    是的,有一个小时间窗口可以从副本(fka 从属)节点读取旧数据。

    参考:Redis Replication

    【讨论】:

    • 有办法避免吗?我们可以修改 redis.conf 以仅在数据与从站同步后才确认写入。 (我怀疑与药膏的交流是异步的)
    • 还有与状态相同的文档吗?
    • @Rishi 链接已添加到答案中
    猜你喜欢
    • 1970-01-01
    • 2014-12-24
    • 2014-11-22
    • 2018-12-15
    • 2019-10-23
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多