我看到了这种奇怪的行为。我对一个键执行 lpush
操作。有一个不同的服务可以监听键通知并尝试lpop
值。但奇怪的是它返回空值。如果我用 0 作为索引执行 lindex
,我会得到值。所以,我肯定知道这个值是可用的。我可以使用 redis-cli
看到这一点。但是 lpop
没有返回值。
我使用 redis 2.8.13 和 Jedis Java 框架。有人可以帮忙吗?
最佳答案
要调试此尝试使用 redis MONITOR命令(例如通过在 redis 主机的 shell 中运行 redis-cli monitor
)来查看:
- 真正发送到您的 redis 的命令是什么,
- 什么时候
- 以及由哪个客户。
如果没有看到代码是不可能的,但我认为您使用 Jedis 的代码发送的命令与您认为发送的命令不完全一致。
关于Redis lindex 有效但 lpop 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28666344/