You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jedis调用Redis ZADD命令结合ZAddParams时遇错误求助

问题解决:Jedis ZADD 带 ZAddParams 时报错 "ERR bit offset is not a double or out of range"

错误原因

你遇到的问题是方法重载匹配错误。Jedis的zadd方法有多个重载版本,当你把ZAddParams放在score和member之后传入时,Jedis并未匹配到带参数选项的正确重载,反而将ZAddParams实例错误解析为额外的命令参数,导致Redis收到格式错误的命令,进而触发了这个看似不相关的bit操作类报错。

解决方案

调整参数顺序,将ZAddParams放在score和member之前,使用正确的重载方法:

// 正确写法:ZAddParams 作为第二个参数传入
long a = redisClient.zadd("key", ZAddParams.zAddParams().nx(), 2.0, "member1");

如果需要批量添加多个member,也可以使用Map形式的重载:

Map<String, Double> scoreMembers = new HashMap<>();
scoreMembers.put("member1", 2.0);
long a = redisClient.zadd("key", ZAddParams.zAddParams().nx(), scoreMembers);

这样调用会让Jedis正确构造带有NX选项的ZADD命令,Redis就能正常解析执行了。

内容的提问来源于stack exchange,提问作者Nitish Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:35:26