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

如何使用Jedis的xdel方法批量删除Redis Stream ID并解决参数报错

Jedis批量删除Redis Stream ID参数说明

报错根因:xdel方法的第二个参数为StreamEntryID类型的可变长参数,你传入List或者Stream类型的实例时,不符合方法的参数类型要求,就会触发类型不匹配的报错。

以下是不同场景下的正确写法:

  • 单独传入多个ID的写法:
// 直接传入多个StreamEntryID对象即可
jedis.xdel("stream_key", new StreamEntryID("1690000000000-0"), new StreamEntryID("1690000000001-0"));
  • 已有List<StreamEntryID>集合的写法:
List<StreamEntryID> toDelIds = new ArrayList<>();
// 业务逻辑填充待删除ID
// 把List转为数组传入
jedis.xdel("stream_key", toDelIds.toArray(new StreamEntryID[0]));
  • 持有Stream<StreamEntryID>流的写法:
Stream<StreamEntryID> idStream = // 你的流对象
// 直接把流转为数组传入
jedis.xdel("stream_key", idStream.toArray(StreamEntryID[]::new));

补充说明:Java的可变长参数底层是数组实现,所以只有独立的多个同类型参数、或者对应类型的数组可以被方法接收,集合、流类型都需要先转换为数组再传入。

内容的提问来源于stack exchange,提问作者בני

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:24:04