Redis SPOP 不是原子的?

标签 redis

阅读文档它看起来不像 Set POP (SPOP) 是原子的,而 LPOPRPOP 等是。这也是我在我的代码中看到的情况,我有两个客户端使用 lettuce 和监听 SPOP 的 react 流。推送某些内容时,两个客户端都会获得刚刚推送的相同值。我真的希望避免这种情况,因为我需要一套来保持我的值(value)观的独特性,并且希望 SPOP 与 LPOP 相同。

我有一个推送到这个 Set 的 pubsub 客户端,多个实例将有多个 pubsub 客户端,这就是 Set 防止完成额外工作的原因。

我可以确保列表仅包含唯一项,也可以使 SPOP 原子化。我应该怎么做?

最佳答案

还有其他人解释了为什么 SPOP 不是原子的:

https://medium.com/@stockholmux/redis-spop-culture-800cf306cbe6

关于Redis SPOP 不是原子的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52960476/

相关文章:

python - Celery 任务在 Django 应用程序中执行多次

我可以将 MGET 与 hiredis 一起使用吗?

redis - 如何在 Redis 3.2.6 Sentinel 中禁用保护模式?

Laravel 5.4 事件触发,但未广播

regex - redis keys 命令不适用于某些字符

redis - 当 Redis 设置为 allkeys-lfu 逐出时,我可以指定一个特定的键永远不应该被逐出吗?

asp.net-mvc - 如何开始在 Windows 的 ServiceStack 上使用 Redis?

c# - ServiceStack RedisMessageQueueClient 异常行为

redis - 使用 volatile-ttl 的奇怪 key 逐出行为

amazon-web-services - AWS Elasticache - Redis 自动扩展