- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我遇到了一个关于 Redis 及其 Java 客户端 Jedis 的非常奇怪的问题。我在 Redis 中有两个名为 workMQ
和 backupMQ
的列表,当我在 redis-cli 中执行 llen workMQ
时,它返回 16
。但是,当我使用 Jedis 在 Java 代码中执行 jedis.llen("workMQ")
时,它返回 0
。但是当新数据通过 Java 代码运行 jedis.lpush("workMQ", "data")
时,Redis llen workMQ
变为 1
.为什么 jedis.llen("workMQ")
无法识别此列表中剩余的 16
数据项?
在出现这个奇怪的问题之前,我用Lua脚本做了rpoplpush
操作,如下。
eval "for i = 1, 10 do\r redis.call('rpoplpush', 'backupMQ', 'workMQ')\r end"0
其实这个Lua脚本有一些错误,正确的是
eval "for i = 1, 10 do\r redis.call('rpoplpush', KEYS[1], KEYS[2])\r end"2 backupMQ workMQ
也许 Redis 和 Lua 之间存在某种类型错误。这两个Lua脚本我都执行了,还是不行。
PS:我的Jedis客户端版本是2.7.2,是Jedis Github上最新的稳定版。
感谢您的宝贵时间。
已解决:一晚上后,Redis 服务器神奇地识别了 workMQ 的项目长度,一切正常。真是奇怪。
最佳答案
这种奇怪的事情不可能发生。你一定是搞错了什么。例如,redis-cli 可以接受像“llen(workMQ)”这样的命令吗?或者您实际上是指“llen workMQ”?
我认为您很可能正在使用 jedis 来操作与 redis-cli 不同的列表键!
lua 问题很简单,你应该在lua 脚本结束时返回一个值(随意)。如果还是不行,把详细的错误信息发给我!
关于java - jedis llen 结果不等于 redis llen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741235/
我遇到了一个关于 Redis 及其 Java 客户端 Jedis 的非常奇怪的问题。我在 Redis 中有两个名为 workMQ 和 backupMQ 的列表,当我在 redis-cli 中执行 ll
使用 PHP,我得到这种形式的文本: key1,key2,keyn 然后我将这个文本转换成一个数组。现在,我要做的是针对每个键,获取其列表长度。我知道我可以在内部使用“llen”命令执行 forea
我只想使用 'llen "someKey"' 返回值(列表计数)在一次交易中添加 'rpush' 值。 var count = llen "keys" rpush "keys" count 我如何使用
Redis: 2.0.4, 2.4.1, ... 我将编写一个 Nagios 插件来检查列表的长度。这是我的脚本: #!/bin/sh help() { echo "Usage: $0
我是一名优秀的程序员,十分优秀!