diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index b2cc3192dd..8c6a2414b9 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -1764,6 +1764,10 @@ public void xreadGroup(byte[] groupname, byte[] consumer, final XReadGroupParams sendCommand(XREADGROUP, args); } + public void xpending(final byte[] key, final byte[] groupname) { + sendCommand(XPENDING, key, groupname); + } + public void xpending(byte[] key, byte[] groupname, byte[] start, byte[] end, int count, byte[] consumername) { if (consumername == null) { @@ -1773,10 +1777,6 @@ public void xpending(byte[] key, byte[] groupname, byte[] start, byte[] end, int } } - public void xpendingSummary(final byte[] key, final byte[] groupname) { - sendCommand(XPENDING, key, groupname); - } - public void xclaim(byte[] key, byte[] groupname, byte[] consumername, long minIdleTime, long newIdleTime, int retries, boolean force, byte[][] ids) { diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index 3314549511..7295b273aa 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -4651,9 +4651,9 @@ public List xpending(byte[] key, byte[] groupname, byte[] start, byte[] } @Override - public Object xpendingSummary(final byte[] key, final byte[] groupname) { + public Object xpending(final byte[] key, final byte[] groupname) { checkIsInMultiOrPipeline(); - client.xpendingSummary(key, groupname); + client.xpending(key, groupname); return client.getOne(); } diff --git a/src/main/java/redis/clients/jedis/BinaryJedisCluster.java b/src/main/java/redis/clients/jedis/BinaryJedisCluster.java index 7649c34eb1..c3dd421a8e 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedisCluster.java +++ b/src/main/java/redis/clients/jedis/BinaryJedisCluster.java @@ -2568,11 +2568,11 @@ public List execute(Jedis connection) { } @Override - public Object xpendingSummary(final byte[] key, final byte[] groupname) { + public Object xpending(final byte[] key, final byte[] groupname) { return new JedisClusterCommand(connectionHandler, maxAttempts) { @Override public Object execute(Jedis connection) { - return connection.xpendingSummary(key, groupname); + return connection.xpending(key, groupname); } }.runBinary(key); } diff --git a/src/main/java/redis/clients/jedis/BinaryShardedJedis.java b/src/main/java/redis/clients/jedis/BinaryShardedJedis.java index 08624f54c6..eb66336e32 100644 --- a/src/main/java/redis/clients/jedis/BinaryShardedJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryShardedJedis.java @@ -1201,9 +1201,9 @@ public List xpending(byte[] key, byte[] groupname, byte[] start, byte[] } @Override - public Object xpendingSummary(final byte[] key, final byte[] groupname) { + public Object xpending(final byte[] key, final byte[] groupname) { Jedis j = getShard(key); - return j.xpendingSummary(key, groupname); + return j.xpending(key, groupname); } @Override diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index 295e7a09f8..a92b249215 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -1491,6 +1491,11 @@ public void xreadGroup(String groupname, String consumer, XReadGroupParams param sendCommand(Protocol.Command.XREADGROUP, args); } + @Override + public void xpending(String key, String groupname) { + xpending(SafeEncoder.encode(key), SafeEncoder.encode(groupname)); + } + @Override public void xpending(String key, String groupname, StreamEntryID start, StreamEntryID end, int count, String consumername) { @@ -1498,11 +1503,6 @@ public void xpending(String key, String groupname, StreamEntryID start, StreamEn SafeEncoder.encode(end==null ? "+" : end.toString()), count, consumername == null? null : SafeEncoder.encode(consumername)); } - @Override - public void xpendingSummary(String key, String groupname) { - xpendingSummary(SafeEncoder.encode(key), SafeEncoder.encode(groupname)); - } - @Override public void xclaim(String key, String group, String consumername, long minIdleTime, long newIdleTime, int retries, boolean force, StreamEntryID... ids) { diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index fccb4f1040..c124a588dd 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -4231,18 +4231,18 @@ public List>> xreadGroup(final String groupn } @Override - public List xpending(final String key, final String groupname, - final StreamEntryID start, final StreamEntryID end, final int count, final String consumername) { + public StreamPendingSummary xpending(final String key, final String groupname) { checkIsInMultiOrPipeline(); - client.xpending(key, groupname, start, end, count, consumername); - return BuilderFactory.STREAM_PENDING_ENTRY_LIST.build(client.getObjectMultiBulkReply()); + client.xpending(key, groupname); + return BuilderFactory.STREAM_PENDING_SUMMARY.build(client.getObjectMultiBulkReply()); } @Override - public StreamPendingSummary xpendingSummary(final String key, final String groupname) { + public List xpending(final String key, final String groupname, + final StreamEntryID start, final StreamEntryID end, final int count, final String consumername) { checkIsInMultiOrPipeline(); - client.xpendingSummary(key, groupname); - return BuilderFactory.STREAM_PENDING_SUMMARY.build(client.getObjectMultiBulkReply()); + client.xpending(key, groupname, start, end, count, consumername); + return BuilderFactory.STREAM_PENDING_ENTRY_LIST.build(client.getObjectMultiBulkReply()); } @Override diff --git a/src/main/java/redis/clients/jedis/JedisCluster.java b/src/main/java/redis/clients/jedis/JedisCluster.java index e271156b39..85ef8176d9 100644 --- a/src/main/java/redis/clients/jedis/JedisCluster.java +++ b/src/main/java/redis/clients/jedis/JedisCluster.java @@ -2629,22 +2629,22 @@ public List>> execute(Jedis connection) { } @Override - public List xpending(final String key, final String groupname, - final StreamEntryID start, final StreamEntryID end, final int count, final String consumername) { - return new JedisClusterCommand>(connectionHandler, maxAttempts) { + public StreamPendingSummary xpending(final String key, final String groupname) { + return new JedisClusterCommand(connectionHandler, maxAttempts) { @Override - public List execute(Jedis connection) { - return connection.xpending(key, groupname, start, end, count, consumername); + public StreamPendingSummary execute(Jedis connection) { + return connection.xpending(key, groupname); } }.run(key); } @Override - public StreamPendingSummary xpendingSummary(final String key, final String groupname) { - return new JedisClusterCommand(connectionHandler, maxAttempts) { + public List xpending(final String key, final String groupname, + final StreamEntryID start, final StreamEntryID end, final int count, final String consumername) { + return new JedisClusterCommand>(connectionHandler, maxAttempts) { @Override - public StreamPendingSummary execute(Jedis connection) { - return connection.xpendingSummary(key, groupname); + public List execute(Jedis connection) { + return connection.xpending(key, groupname, start, end, count, consumername); } }.run(key); } diff --git a/src/main/java/redis/clients/jedis/PipelineBase.java b/src/main/java/redis/clients/jedis/PipelineBase.java index ea2543b068..382b5ac32b 100644 --- a/src/main/java/redis/clients/jedis/PipelineBase.java +++ b/src/main/java/redis/clients/jedis/PipelineBase.java @@ -2223,6 +2223,18 @@ public Response xgroupDelConsumer(byte[] key, byte[] groupname, byte[] con return getResponse(BuilderFactory.LONG); } + @Override + public Response xpending(String key, String groupname) { + getClient(key).xpending(key, groupname); + return getResponse(BuilderFactory.STREAM_PENDING_SUMMARY); + } + + @Override + public Response xpending(byte[] key, byte[] groupname) { + getClient(key).xpending(key, groupname); + return getResponse(BuilderFactory.RAW_OBJECT); + } + @Override public Response> xpending(String key, String groupname, StreamEntryID start, StreamEntryID end, int count, String consumername) { @@ -2244,18 +2256,6 @@ public Response> xpendingBinary(byte[] key, byte[] groupname, byte[ return getResponse(BuilderFactory.RAW_OBJECT_LIST); } - @Override - public Response xpendingSummary(String key, String groupname) { - getClient(key).xpendingSummary(key, groupname); - return getResponse(BuilderFactory.STREAM_PENDING_SUMMARY); - } - - @Override - public Response xpendingSummary(byte[] key, byte[] groupname) { - getClient(key).xpendingSummary(key, groupname); - return getResponse(BuilderFactory.RAW_OBJECT); - } - @Override public Response xdel(String key, StreamEntryID... ids) { getClient(key).xdel(key, ids); diff --git a/src/main/java/redis/clients/jedis/ShardedJedis.java b/src/main/java/redis/clients/jedis/ShardedJedis.java index f0c2c41633..db242f6539 100644 --- a/src/main/java/redis/clients/jedis/ShardedJedis.java +++ b/src/main/java/redis/clients/jedis/ShardedJedis.java @@ -1190,16 +1190,16 @@ public List xrevrange(String key, StreamEntryID end, StreamEntryID } @Override - public List xpending(String key, String groupname, StreamEntryID start, - StreamEntryID end, int count, String consumername) { + public StreamPendingSummary xpending(String key, String groupname) { Jedis j = getShard(key); - return j.xpending(key, groupname, start, end, count, consumername); + return j.xpending(key, groupname); } @Override - public StreamPendingSummary xpendingSummary(String key, String groupname) { + public List xpending(String key, String groupname, StreamEntryID start, + StreamEntryID end, int count, String consumername) { Jedis j = getShard(key); - return j.xpendingSummary(key, groupname); + return j.xpending(key, groupname, start, end, count, consumername); } @Override diff --git a/src/main/java/redis/clients/jedis/commands/BinaryJedisClusterCommands.java b/src/main/java/redis/clients/jedis/commands/BinaryJedisClusterCommands.java index 64f26e9993..ae9c50aed4 100644 --- a/src/main/java/redis/clients/jedis/commands/BinaryJedisClusterCommands.java +++ b/src/main/java/redis/clients/jedis/commands/BinaryJedisClusterCommands.java @@ -411,9 +411,9 @@ List georadiusByMemberReadonly(byte[] key, byte[] member, dou Long xtrim(byte[] key, long maxLen, boolean approximateLength); - List xpending(byte[] key, byte[] groupname, byte[] start, byte[] end, int count, byte[] consumername); + Object xpending(final byte[] key, final byte[] groupname); - Object xpendingSummary(final byte[] key, final byte[] groupname); + List xpending(byte[] key, byte[] groupname, byte[] start, byte[] end, int count, byte[] consumername); List xclaim(byte[] key, byte[] groupname, byte[] consumername, long minIdleTime, long newIdleTime, int retries, boolean force, byte[][] ids); diff --git a/src/main/java/redis/clients/jedis/commands/BinaryJedisCommands.java b/src/main/java/redis/clients/jedis/commands/BinaryJedisCommands.java index 09f5cfe8c6..c183413465 100644 --- a/src/main/java/redis/clients/jedis/commands/BinaryJedisCommands.java +++ b/src/main/java/redis/clients/jedis/commands/BinaryJedisCommands.java @@ -441,9 +441,9 @@ default List xrange(byte[] key, byte[] start, byte[] end, long count) { Long xtrim(byte[] key, long maxLen, boolean approximateLength); - List xpending(byte[] key, byte[] groupname, byte[] start, byte[] end, int count, byte[] consumername); + Object xpending(byte[] key, byte[] groupname); - Object xpendingSummary(byte[] key, byte[] groupname); + List xpending(byte[] key, byte[] groupname, byte[] start, byte[] end, int count, byte[] consumername); List xclaim(byte[] key, byte[] groupname, byte[] consumername, long minIdleTime, long newIdleTime, int retries, boolean force, byte[]... ids); diff --git a/src/main/java/redis/clients/jedis/commands/BinaryRedisPipeline.java b/src/main/java/redis/clients/jedis/commands/BinaryRedisPipeline.java index e13a011043..1bcdd7a10c 100644 --- a/src/main/java/redis/clients/jedis/commands/BinaryRedisPipeline.java +++ b/src/main/java/redis/clients/jedis/commands/BinaryRedisPipeline.java @@ -399,6 +399,8 @@ Response> georadiusByMemberReadonly(byte[] key, byte[] m Response xgroupDelConsumer(byte[] key, byte[] groupname, byte[] consumername); + Response xpending(byte[] key, byte[] groupname); + /** * @deprecated Use {@link #xpendingBinary(byte[], byte[], byte[], byte[], int, byte[])}. */ @@ -407,8 +409,6 @@ Response> georadiusByMemberReadonly(byte[] key, byte[] m Response> xpendingBinary(byte[] key, byte[] groupname, byte[] start, byte[] end, int count, byte[] consumername); - Response xpendingSummary(byte[] key, byte[] groupname); - Response xdel(byte[] key, byte[]... ids); Response xtrim(byte[] key, long maxLen, boolean approximateLength); diff --git a/src/main/java/redis/clients/jedis/commands/Commands.java b/src/main/java/redis/clients/jedis/commands/Commands.java index 0b33c23d00..d93e18671c 100644 --- a/src/main/java/redis/clients/jedis/commands/Commands.java +++ b/src/main/java/redis/clients/jedis/commands/Commands.java @@ -483,9 +483,9 @@ default void restoreReplace(String key, int ttl, byte[] serializedValue) { void xreadGroup(String groupname, String consumer, XReadGroupParams params, Map streams); - void xpending(String key, String groupname, StreamEntryID start, StreamEntryID end, int count, String consumername); + void xpending(String key, String groupname); - void xpendingSummary(String key, String groupname); + void xpending(String key, String groupname, StreamEntryID start, StreamEntryID end, int count, String consumername); void xclaim(String key, String group, String consumername, long minIdleTime, long newIdleTime, int retries, boolean force, StreamEntryID... ids); diff --git a/src/main/java/redis/clients/jedis/commands/JedisClusterCommands.java b/src/main/java/redis/clients/jedis/commands/JedisClusterCommands.java index 657ad21c3f..18fe89c5b1 100644 --- a/src/main/java/redis/clients/jedis/commands/JedisClusterCommands.java +++ b/src/main/java/redis/clients/jedis/commands/JedisClusterCommands.java @@ -463,7 +463,7 @@ List georadiusByMemberReadonly(String key, String member, dou List xrevrange(String key, StreamEntryID end, StreamEntryID start, int count); /** - * @deprecated Will be removed in future version. Use + * @deprecated This will be removed in future version. Use * {@link MultiKeyJedisClusterCommands#xread(int, long, java.util.Map.Entry...)}. */ @Deprecated @@ -517,33 +517,33 @@ List georadiusByMemberReadonly(String key, String member, dou Long xgroupDelConsumer( String key, String groupname, String consumername); /** - * @deprecated Will be removed in future version. Use + * @deprecated This will be removed in future version. Use * {@link MultiKeyJedisClusterCommands#xreadGroup(java.lang.String, java.lang.String, int, long, boolean, java.util.Map.Entry...)}. */ @Deprecated List>> xreadGroup(String groupname, String consumer, int count, long block, boolean noAck, Map.Entry... streams); /** - * XPENDING key group [start end count] [consumer] + * XPENDING key group * * @param key * @param groupname - * @param start - * @param end - * @param count - * @param consumername * @return */ - List xpending(String key, String groupname, StreamEntryID start, StreamEntryID end, int count, String consumername); + StreamPendingSummary xpending(String key, String groupname); /** - * XPENDING key group + * XPENDING key group [start end count] [consumer] * * @param key * @param groupname + * @param start + * @param end + * @param count + * @param consumername * @return */ - StreamPendingSummary xpendingSummary(String key, String groupname); + List xpending(String key, String groupname, StreamEntryID start, StreamEntryID end, int count, String consumername); /** * XDEL key ID [ID ...] diff --git a/src/main/java/redis/clients/jedis/commands/JedisCommands.java b/src/main/java/redis/clients/jedis/commands/JedisCommands.java index fd7172f4f2..86401500cd 100644 --- a/src/main/java/redis/clients/jedis/commands/JedisCommands.java +++ b/src/main/java/redis/clients/jedis/commands/JedisCommands.java @@ -526,26 +526,27 @@ List georadiusByMemberReadonly(String key, String member, dou Long xgroupDelConsumer( String key, String groupname, String consumername); /** - * XPENDING key group [start end count] [consumer] + * XPENDING key group * * @param key * @param groupname - * @param start - * @param end - * @param count - * @param consumername * @return */ - List xpending(String key, String groupname, StreamEntryID start, StreamEntryID end, int count, String consumername); + StreamPendingSummary xpending(String key, String groupname); /** - * XPENDING key group + * XPENDING key group [start end count] [consumer] * * @param key * @param groupname + * @param start + * @param end + * @param count + * @param consumername * @return */ - StreamPendingSummary xpendingSummary(String key, String groupname); + List xpending(String key, String groupname, StreamEntryID start, + StreamEntryID end, int count, String consumername); /** * XDEL key ID [ID ...] diff --git a/src/main/java/redis/clients/jedis/commands/RedisPipeline.java b/src/main/java/redis/clients/jedis/commands/RedisPipeline.java index b51e688b1d..ffa85db0e0 100644 --- a/src/main/java/redis/clients/jedis/commands/RedisPipeline.java +++ b/src/main/java/redis/clients/jedis/commands/RedisPipeline.java @@ -396,11 +396,11 @@ Response> georadiusByMemberReadonly(String key, String m Response xgroupDelConsumer( String key, String groupname, String consumername); + Response xpending(String key, String groupname); + Response> xpending(String key, String groupname, StreamEntryID start, StreamEntryID end, int count, String consumername); - Response xpendingSummary(String key, String groupname); - Response xdel( String key, StreamEntryID... ids); Response xtrim( String key, long maxLen, boolean approximateLength); diff --git a/src/test/java/redis/clients/jedis/tests/commands/StreamsCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/StreamsCommandsTest.java index 1ab1d74114..08dc324030 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/StreamsCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/StreamsCommandsTest.java @@ -431,7 +431,7 @@ public void xpendeing() { assertEquals(map, range.get(0).getValue().get(0).getFields()); // Get the summary about the pending messages - StreamPendingSummary pendingSummary = jedis.xpendingSummary("xpendeing-stream", "xpendeing-group"); + StreamPendingSummary pendingSummary = jedis.xpending("xpendeing-stream", "xpendeing-group"); assertEquals(1, pendingSummary.getTotal()); assertEquals(id1, pendingSummary.getMinId()); assertEquals(1l, pendingSummary.getConsumerMessageCount().get("xpendeing-consumer").longValue());