当你不在 Redis 中 UNWATCH WATCH'd keys 时会发生什么

What happens when you don't UNWATCH WATCH'd keys in Redis

在浏览 Redis 时,我遇到了 WATCH 命令——这是 Redis 事务的一个方面。

Transactions 的相关部分更详细地解释了 WATCH 如何与其他 Redis 并发命令一起工作。

但是,让我感到困惑的一件事是:如果我在键上调用 WATCH,但不(出于任何原因)不 UNWATCH,会发生什么情况?是否有一些 WATCH'd 键的缓存被填满然后开始丢弃旧的 WATCH'd 键?这会导致延迟问题吗?

任何评论都会有帮助:)

What happens if I call WATCH on keys, but don't (for whatever reason) UNWATCH them?

这些密钥将被添加到监视密钥列表中。

Is there some cache of WATCH'd keys that fills and then starts discarding older WATCH'd keys?

没有。除非您取消监视(调用 UNWATCHEXECDISCARD)或关闭连接,否则监视的键不会被删除。

Will this cause latency issues?

如果有键被监视,每次修改一个键(不管它是否被监视的键​​),Redis 都会花费一些 CPU 圈来处理键监视相关的东西。所以你最好尽快取消监视密钥。