我运行两个redis命令:
A:hmset k1,v1,k2,v2,k3,v3 ....(数百把钥匙)11:03:05,450
B:hmset k1,v1.1 at 11:03:05,727
但是我得到的最后一个数据是v1。
我认为有几个可能的原因:
不同机器上的时钟不准确,因此命令B实际上发生在A之前。但我还有其他逻辑可以阻止B在A之前运行,而且我有99%的确定,所以我不想跟踪这个,除非没有其他可能的原因。
我不确定A是否是原子命令,但我认为是这样,因为redis是单线程。那么A可能在A之前开始但在B之后结束吗?
可能与奴隶同步有关,但我无法弄清楚如何?
我想知道是否还有其他可能的原因?以及如何检查以确定会发生什么的任何建议?
我使用带有多个主服务器和从服务器的redis群集,以及jedis 2.9.0。