两个应用程序读写时redis数据不一致

jvidinwx  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(658)

我有两个不同的.net核心服务,它们都从redis读取数据。
第一个应用程序在redis键中以json格式写入数据。
之后,第一个应用程序调用第二个应用程序,这是通过rabbitmq完成的。
当第二个应用程序读取第一个应用程序写入的相同数据时,该值可能已过期,它似乎与第一个应用程序更新密钥之前的值相同。
因为我有一些关于值是否正确的信息,所以我实现了一个重试代码,并且值在多次重试后会发生变化。
我正在使用stackexchange.redis库,我的问题是:在 await 在方法中 StringSetAsync ,值是否已实际更新,或者只是发送到队列或其他对象,以便稍后更新?
这个问题并不总是发生,而且似乎只发生在存储在键中的大值上。
stackexchange.redis版本:2.0.601 redis版本:5.0.4

gcmastyq

gcmastyq1#

我认为问题在于您使用的是stringsetasync,因此该值并不是在该操作之后才设置的,正如您所说的,它发生在可能需要更多时间来编写的大值上。我建议您尝试使用stringset,它是同步的,而不是stringsetasync

相关问题