您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

尽管存在密钥,Redis spop返回null-NodeJS

尽管存在密钥,Redis spop返回null-NodeJS

我的猜测是这样的事情正在发生:

在检查设置大小和弹出值之间有一个竞争条件,这意味着在这两个操作之间有一个很小的时间窗口,另一个读取器也可以弹出一个值(这就是为什么当您只有一个时不会发生此问题的原因读者)。

Redis有一些 列表 命令(例如BRPOP),它们会等到要弹出的实际项目时才出现,但是 set 没有类似的命令。但是,Redis文档包含一些示例代码,说明您如何能够实现类似的代码

另外,您可以实现某种形式的锁定,尽管这可能会影响性能

最后,如果您的读者从一个空的集合中弹出,也许甚至不是什么大问题,在这种情况下,他们只会忽略,null然后稍后再检查。

Node 2022/1/1 18:21:36 有586人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶