python - redis - 将空列表与不存在的列表区别对待?

标签 python redis

我已经有一段时间没有使用 redis 了,我正在将 python 多处理中的几乎所有共享内存项目代码(除了队列)移植到使用 redis 缓存,我需要重新实现我的锁。 我在这里找到了这个答案:https://stackoverflow.com/a/20182448/3467349 - 建议使用 brpop 作为锁。

但是如果不可能预先实例化所有必要的列表,这将不起作用。有没有一种特殊的方法来区分 nil on a non-existent key 和 nil

最佳答案

Redis 中没有空列表——一旦列表没有元素,它就会被删除。您可以使用 EXISTS 命令验证这一点。

然而,使用 BRPOP,您无需担心这一点 - 即使 key 不存在,操作也会继续,直到另一个客户端将某些内容推送到该列表或超时到期。

关于python - redis - 将空列表与不存在的列表区别对待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306874/

相关文章:

go - 在 golang 中将字节数组更改为结构

data-structures - Redis 哈希 : How to Query on both Key and Value

python - 如何使用包含关系 ID 的 Neo4j APOC 导出到 .csv

不完全由数字组成的单词的 Python 列表理解

ruby-on-rails - 查明 resque 作业是否仍在运行,如果卡住则终止它

asp.net - 我们如何限制只能从某些IP访问redis?

express - 如何从不同的浏览器永久保持登录?

python - 根据另一个系列中的值替换系列中的值的快捷方式?

python - 无法在子初始化器的列表理解中调用父方法,但显式循环有效

python - Celery 分配队列和工作人员