【问题标题】:Is the SETNX always executed on redis master in the sentinel system?SETNX总是在哨兵系统的redis master上执行吗?
【发布时间】:2020-02-28 19:05:53
【问题描述】:

想问

  1. 如果 SETNX 命令(NX 测试和 SET)保证在“Redis Sentinel System”的上下文中在 redis 主服务器上执行?
  2. 是否保证在“Redis Sentinel System”上下文中是原子的?

阅读文档后我的理解是对两者都是肯定的,因为:

  • 广告。 1 只有主机可以接受写入,并且由于 SETNX 有一个设置/写入组件,它必须转到主机(因为所有写入都通过主机)。
  • 广告。 2 由于 SET 将在主服务器上执行,因此仅在主服务器上检查 NX 部分才有意义(永远不会查询从服务器),否则会不必要地耗时并可能破坏原子性。

有人可以 100% 肯定地确认,也许可以指出一些可以消除我疑虑的文档。 提前致谢!

【问题讨论】:

    标签: redis redis-sentinel


    【解决方案1】:

    我可以以 %99.97 (3 sigmas) 的把握确认上述情况。

    广告。 1 只有主机可以接受写入,并且由于 SETNX 有一个设置/写入组件,它必须转到主机(因为所有写入都通过主机)。

    正确,不包括您故意启用写入副本并连接到副本的场景。

    广告。 2 由于 SET 将在主服务器上执行,因此仅在主服务器上检查 NX 部分才有意义(永远不会查询从服务器),否则会不必要地耗时并可能破坏原子性。

    是的。

    【讨论】:

      猜你喜欢
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多