Skip to content

Commit 5126f69

Browse files
author
dengliming
authored
Add support MINID args to XTRIM (#2467)
* Add support MINID args to XTRIM * Fix review
1 parent df8f10b commit 5126f69

20 files changed

+220
-10
lines changed

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@
208208
</manifestEntries>
209209
</archive>
210210
</configuration>
211-
</plugin>
211+
</plugin>
212212
<plugin>
213213
<groupId>org.apache.felix</groupId>
214214
<artifactId>maven-bundle-plugin</artifactId>
@@ -217,11 +217,11 @@
217217
<execution>
218218
<id>bundle-manifest</id>
219219
<phase>process-classes</phase>
220-
<goals>
220+
<goals>
221221
<goal>manifest</goal>
222-
</goals>
222+
</goals>
223223
</execution>
224-
</executions>
224+
</executions>
225225
</plugin>
226226
</plugins>
227227
</build>

src/main/java/redis/clients/jedis/BinaryClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1750,6 +1750,10 @@ public void xtrim(byte[] key, long maxLen, boolean approximateLength) {
17501750
}
17511751
}
17521752

1753+
public void xtrim(byte[] key, XTrimParams params) {
1754+
sendCommand(XTRIM, params.getByteParams(key));
1755+
}
1756+
17531757
/**
17541758
* @deprecated This method will be removed due to bug regarding {@code block} param. Use
17551759
* {@link #xreadGroup(byte..., byte..., redis.clients.jedis.params.XReadGroupParams, java.util.Map.Entry...)}.

src/main/java/redis/clients/jedis/BinaryJedis.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4729,6 +4729,13 @@ public Long xtrim(byte[] key, long maxLen, boolean approximateLength) {
47294729
return client.getIntegerReply();
47304730
}
47314731

4732+
@Override
4733+
public Long xtrim(byte[] key, XTrimParams params) {
4734+
checkIsInMultiOrPipeline();
4735+
client.xtrim(key, params);
4736+
return client.getIntegerReply();
4737+
}
4738+
47324739
@Override
47334740
public List<Object> xpending(byte[] key, byte[] groupname, byte[] start, byte[] end, int count,
47344741
byte[] consumername) {

src/main/java/redis/clients/jedis/BinaryJedisCluster.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2638,6 +2638,16 @@ public Long execute(Jedis connection) {
26382638
}.runBinary(key);
26392639
}
26402640

2641+
@Override
2642+
public Long xtrim(final byte[] key, final XTrimParams params) {
2643+
return new JedisClusterCommand<Long>(connectionHandler, maxAttempts) {
2644+
@Override
2645+
public Long execute(Jedis connection) {
2646+
return connection.xtrim(key, params);
2647+
}
2648+
}.runBinary(key);
2649+
}
2650+
26412651
@Override
26422652
public List<Object> xpending(final byte[] key, final byte[] groupname, final byte[] start,
26432653
final byte[] end, final int count, final byte[] consumername) {

src/main/java/redis/clients/jedis/BinaryShardedJedis.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import redis.clients.jedis.params.GetExParams;
1616
import redis.clients.jedis.params.SetParams;
1717
import redis.clients.jedis.params.XClaimParams;
18+
import redis.clients.jedis.params.XTrimParams;
1819
import redis.clients.jedis.params.ZAddParams;
1920
import redis.clients.jedis.params.ZIncrByParams;
2021
import redis.clients.jedis.params.LPosParams;
@@ -1205,6 +1206,12 @@ public Long xtrim(byte[] key, long maxLen, boolean approximateLength) {
12051206
return j.xtrim(key, maxLen, approximateLength);
12061207
}
12071208

1209+
@Override
1210+
public Long xtrim(byte[] key, XTrimParams params) {
1211+
Jedis j = getShard(key);
1212+
return j.xtrim(key, params);
1213+
}
1214+
12081215
@Override
12091216
public List<Object> xpending(byte[] key, byte[] groupname, byte[] start, byte[] end, int count,
12101217
byte[] consumername) {

src/main/java/redis/clients/jedis/Client.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1501,6 +1501,11 @@ public void xtrim(String key, long maxLen, boolean approximateLength) {
15011501
xtrim(SafeEncoder.encode(key), maxLen, approximateLength);
15021502
}
15031503

1504+
@Override
1505+
public void xtrim(String key, XTrimParams params) {
1506+
xtrim(SafeEncoder.encode(key), params);
1507+
}
1508+
15041509
@Override
15051510
public void xreadGroup(String groupname, String consumer, int count, long block, boolean noAck,
15061511
Entry<String, StreamEntryID>... streams) {

src/main/java/redis/clients/jedis/Jedis.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4257,6 +4257,13 @@ public long xtrim(final String key, final long maxLen, final boolean approximate
42574257
return client.getIntegerReply();
42584258
}
42594259

4260+
@Override
4261+
public long xtrim(final String key, final XTrimParams params) {
4262+
checkIsInMultiOrPipeline();
4263+
client.xtrim(key, params);
4264+
return client.getIntegerReply();
4265+
}
4266+
42604267
/**
42614268
* {@inheritDoc}
42624269
*/

src/main/java/redis/clients/jedis/JedisCluster.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2742,6 +2742,16 @@ public Long execute(Jedis connection) {
27422742
}.run(key);
27432743
}
27442744

2745+
@Override
2746+
public Long xtrim(final String key, final XTrimParams params) {
2747+
return new JedisClusterCommand<Long>(connectionHandler, maxAttempts) {
2748+
@Override
2749+
public Long execute(Jedis connection) {
2750+
return connection.xtrim(key, params);
2751+
}
2752+
}.run(key);
2753+
}
2754+
27452755
@Override
27462756
public List<StreamEntry> xclaim(final String key, final String group, final String consumername,
27472757
final long minIdleTime, final long newIdleTime, final int retries, final boolean force,

src/main/java/redis/clients/jedis/PipelineBase.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import redis.clients.jedis.params.GetExParams;
1313
import redis.clients.jedis.params.SetParams;
1414
import redis.clients.jedis.params.XClaimParams;
15+
import redis.clients.jedis.params.XTrimParams;
1516
import redis.clients.jedis.params.ZAddParams;
1617
import redis.clients.jedis.params.ZIncrByParams;
1718
import redis.clients.jedis.params.LPosParams;
@@ -2304,6 +2305,18 @@ public Response<Long> xtrim(byte[] key, long maxLen, boolean approximateLength)
23042305
return getResponse(BuilderFactory.LONG);
23052306
}
23062307

2308+
@Override
2309+
public Response<Long> xtrim(byte[] key, XTrimParams params) {
2310+
getClient(key).xtrim(key, params);
2311+
return getResponse(BuilderFactory.LONG);
2312+
}
2313+
2314+
@Override
2315+
public Response<Long> xtrim(String key, XTrimParams params) {
2316+
getClient(key).xtrim(key, params);
2317+
return getResponse(BuilderFactory.LONG);
2318+
}
2319+
23072320
@Override
23082321
public Response<List<StreamEntry>> xclaim(String key, String group, String consumername,
23092322
long minIdleTime, long newIdleTime, int retries, boolean force, StreamEntryID... ids) {

src/main/java/redis/clients/jedis/Protocol.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public final class Protocol {
7373
public static final byte[] BYTES_TRUE = toByteArray(1);
7474
public static final byte[] BYTES_FALSE = toByteArray(0);
7575
public static final byte[] BYTES_TILDE = SafeEncoder.encode("~");
76+
public static final byte[] BYTES_EQUAL = SafeEncoder.encode("=");
7677

7778
public static final byte[] POSITIVE_INFINITY_BYTES = "+inf".getBytes();
7879
public static final byte[] NEGATIVE_INFINITY_BYTES = "-inf".getBytes();
@@ -283,7 +284,7 @@ public static enum Keyword implements Rawable {
283284
GETNAME, SETNAME, LIST, MATCH, COUNT, PING, PONG, UNLOAD, REPLACE, KEYS, PAUSE, DOCTOR, BLOCK,
284285
NOACK, STREAMS, KEY, CREATE, MKSTREAM, SETID, DESTROY, DELCONSUMER, MAXLEN, GROUP, ID, IDLE,
285286
TIME, RETRYCOUNT, FORCE, USAGE, SAMPLES, STREAM, GROUPS, CONSUMERS, HELP, FREQ, SETUSER,
286-
GETUSER, DELUSER, WHOAMI, CAT, GENPASS, USERS, LOG, INCR, SAVE, JUSTID, WITHVALUES, UNBLOCK;
287+
GETUSER, DELUSER, WHOAMI, CAT, GENPASS, USERS, LOG, INCR, SAVE, JUSTID, WITHVALUES, UNBLOCK, MINID;
287288

288289
/**
289290
* @deprecated This will be private in future. Use {@link #getRaw()}.

0 commit comments

Comments
 (0)