SETNX是否始终在哨兵系统中的redis主机上执行?

时间:2020-02-27 13:39:42

标签: redis redis-sentinel

想问

  1. 如果在“ Redis Sentinel系统”的上下文中保证SETNX命令(NX测试和SET)都保证在Redis主设备上执行?
  2. 是否保证在“ Redis Sentinel系统”的上下文中是原子的?

在阅读文档后,我对两者的理解都是“是”,因为:

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

有人可以100%肯定地确认,或者可以向我指出一些消除我疑虑的文档。 预先感谢!

1 个答案:

答案 0 :(得分:0)

我可以用%99.97(3 sigmas)的确定性来确认以上内容。

广告。 1,只有主服务器可以接受写操作,并且由于SETNX具有设置/写入组件,因此必须转到主服务器(因为所有写操作都通过主服务器)。

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

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

是的