我有一段时间没有使用redis而且我将python多处理中的所有共享内存项代码(除了队列)移植到使用redis缓存之前,我需要重新实现我的锁。
我在这里找到了这个答案:https://stackoverflow.com/a/20182448/3467349 - 建议使用brpop
作为锁。
但如果无法预先实例化所有必要的列表,那么这将无效。是否有一种特殊的方法可以区分nil
与不存在的密钥和nil
?
答案 0 :(得分:0)
Redis中没有空列表 - 一旦列表没有元素,它就会被删除。您可以使用EXISTS
命令验证它。
然而,对于BRPOP
,您不必担心 - 即使密钥不存在,操作也会继续,直到另一个客户端将某些内容推入该列表或超时&# 39;到期。