From d94e9e87bd75690eaf8f01cee2ee0005728824aa Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 23 Sep 2022 15:24:16 +0200 Subject: [PATCH] Refine methods accepting floating-point Range values. For easier usage we now use Range instead of Range to allow Range usage. Original pull request: #2370. Closes #2421 --- .../DefaultStringRedisConnection.java | 33 +++++++++++-------- .../connection/DefaultedRedisConnection.java | 18 +++++----- .../redis/connection/RedisZSetCommands.java | 32 ++++++++++-------- .../connection/StringRedisConnection.java | 10 +++--- .../jedis/JedisClusterZSetCommands.java | 22 ++++++++----- .../connection/jedis/JedisZSetCommands.java | 22 ++++++++----- .../lettuce/LettuceReactiveZSetCommands.java | 8 ++--- .../lettuce/LettuceZSetCommands.java | 19 ++++++----- .../data/redis/core/BoundZSetOperations.java | 8 ++--- .../redis/core/DefaultZSetOperations.java | 4 +-- .../data/redis/core/ZSetOperations.java | 8 ++--- .../support/collections/DefaultRedisZSet.java | 6 ++-- .../redis/support/collections/RedisZSet.java | 11 +++---- .../connection/RedisConnectionUnitTests.java | 23 +++++++------ 14 files changed, 125 insertions(+), 99 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java index 1c9354153..754cd7c2f 100644 --- a/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java @@ -992,7 +992,7 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco } @Override - public Long zCount(byte[] key, org.springframework.data.domain.Range range) { + public Long zCount(byte[] key, org.springframework.data.domain.Range range) { return convertAndReturn(delegate.zCount(key, range), Converters.identityConverter()); } @@ -1102,18 +1102,18 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco } @Override - public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return convertAndReturn(delegate.zRangeByScore(key, range), Converters.identityConverter()); } @Override - public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return convertAndReturn(delegate.zRangeByScore(key, range, limit), Converters.identityConverter()); } @Override - public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range) { + public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range) { return convertAndReturn(delegate.zRangeByScoreWithScores(key, range), Converters.identityConverter()); } @@ -1129,7 +1129,7 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco } @Override - public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return convertAndReturn(delegate.zRangeByScoreWithScores(key, range, limit), Converters.identityConverter()); } @@ -1150,7 +1150,7 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco } @Override - public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return convertAndReturn(delegate.zRevRangeByScore(key, range), Converters.identityConverter()); } @@ -1160,7 +1160,7 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco } @Override - public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return convertAndReturn(delegate.zRevRangeByScore(key, range, limit), Converters.identityConverter()); } @@ -1172,12 +1172,14 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco } @Override - public Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range) { + public Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range) { return convertAndReturn(delegate.zRevRangeByScoreWithScores(key, range), Converters.identityConverter()); } @Override - public Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return convertAndReturn(delegate.zRevRangeByScoreWithScores(key, range, limit), Converters.identityConverter()); } @@ -1213,7 +1215,7 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco } @Override - public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return convertAndReturn(delegate.zRemRangeByScore(key, range), Converters.identityConverter()); } @@ -2747,28 +2749,31 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco @Override public Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, - org.springframework.data.domain.Range range, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return convertAndReturn(delegate.zRangeStoreByScore(dstKey, srcKey, range, limit), Converters.identityConverter()); } @Override - public Long zRangeStoreByScore(String dstKey, String srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreByScore(String dstKey, String srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return convertAndReturn(delegate.zRangeStoreByScore(serialize(dstKey), serialize(srcKey), range, limit), Converters.identityConverter()); } @Override - public Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return convertAndReturn(delegate.zRangeStoreRevByScore(dstKey, srcKey, range, limit), Converters.identityConverter()); } @Override - public Long zRangeStoreRevByScore(String dstKey, String srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreRevByScore(String dstKey, String srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return convertAndReturn(delegate.zRangeStoreRevByScore(serialize(dstKey), serialize(srcKey), range, limit), Converters.identityConverter()); diff --git a/src/main/java/org/springframework/data/redis/connection/DefaultedRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/DefaultedRedisConnection.java index 6c16b0fc2..0e071dc6e 100644 --- a/src/main/java/org/springframework/data/redis/connection/DefaultedRedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/DefaultedRedisConnection.java @@ -1018,7 +1018,7 @@ public interface DefaultedRedisConnection extends RedisCommands, RedisCommandsPr /** @deprecated in favor of {@link RedisConnection#zSetCommands()}}. */ @Override @Deprecated - default Long zCount(byte[] key, org.springframework.data.domain.Range range) { + default Long zCount(byte[] key, org.springframework.data.domain.Range range) { return zSetCommands().zCount(key, range); } @@ -1160,7 +1160,7 @@ public interface DefaultedRedisConnection extends RedisCommands, RedisCommandsPr /** @deprecated in favor of {@link RedisConnection#zSetCommands()}}. */ @Override @Deprecated - default Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, + default Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zSetCommands().zRangeByScore(key, range, limit); } @@ -1168,7 +1168,7 @@ public interface DefaultedRedisConnection extends RedisCommands, RedisCommandsPr /** @deprecated in favor of {@link RedisConnection#zSetCommands()}}. */ @Override @Deprecated - default Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + default Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zSetCommands().zRangeByScoreWithScores(key, range, limit); } @@ -1183,7 +1183,7 @@ public interface DefaultedRedisConnection extends RedisCommands, RedisCommandsPr /** @deprecated in favor of {@link RedisConnection#zSetCommands()}}. */ @Override @Deprecated - default Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, + default Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zSetCommands().zRevRangeByScore(key, range, limit); } @@ -1191,7 +1191,8 @@ public interface DefaultedRedisConnection extends RedisCommands, RedisCommandsPr /** @deprecated in favor of {@link RedisConnection#zSetCommands()}}. */ @Override @Deprecated - default Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + default Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zSetCommands().zRevRangeByScoreWithScores(key, range, limit); } @@ -1227,7 +1228,7 @@ public interface DefaultedRedisConnection extends RedisCommands, RedisCommandsPr /** @deprecated in favor of {@link RedisConnection#zSetCommands()}}. */ @Override @Deprecated - default Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + default Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return zSetCommands().zRemRangeByScore(key, range); } @@ -1858,7 +1859,7 @@ public interface DefaultedRedisConnection extends RedisCommands, RedisCommandsPr @Override @Deprecated default Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, - org.springframework.data.domain.Range range, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zSetCommands().zRangeStoreByScore(dstKey, srcKey, range, limit); } @@ -1866,7 +1867,8 @@ public interface DefaultedRedisConnection extends RedisCommands, RedisCommandsPr /** @deprecated in favor of {@link RedisConnection#zSetCommands()}}. */ @Override @Deprecated - default Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + default Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zSetCommands().zRangeStoreRevByScore(dstKey, srcKey, range, limit); } diff --git a/src/main/java/org/springframework/data/redis/connection/RedisZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/RedisZSetCommands.java index 5eb27ca1e..02a3e4e7f 100644 --- a/src/main/java/org/springframework/data/redis/connection/RedisZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/RedisZSetCommands.java @@ -569,7 +569,8 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZRANGEBYSCORE */ @Nullable - default Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range) { + default Set zRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range) { return zRangeByScoreWithScores(key, range, Limit.unlimited()); } @@ -641,7 +642,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZRANGEBYSCORE */ @Nullable - Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit); /** @@ -697,7 +698,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZREVRANGEBYSCORE */ @Nullable - default Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + default Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return zRevRangeByScore(key, range, Limit.unlimited()); } @@ -748,7 +749,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZREVRANGEBYSCORE */ @Nullable - Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, + Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit); /** @@ -782,7 +783,8 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZREVRANGEBYSCORE */ @Nullable - default Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range) { + default Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range) { return zRevRangeByScoreWithScores(key, range, Limit.unlimited()); } @@ -798,7 +800,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZREVRANGEBYSCORE */ @Nullable - Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit); /** @@ -825,7 +827,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZCOUNT */ @Nullable - Long zCount(byte[] key, org.springframework.data.domain.Range range); + Long zCount(byte[] key, org.springframework.data.domain.Range range); /** * Count number of elements within sorted set with value between {@code Range#min} and {@code Range#max} applying @@ -994,7 +996,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZREMRANGEBYSCORE */ @Nullable - Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range); + Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range); /** * Diff sorted {@code sets}. @@ -1247,7 +1249,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZRANGEBYSCORE */ @Nullable - default Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + default Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return zRangeByScore(key, range, Limit.unlimited()); } @@ -1279,7 +1281,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZRANGEBYSCORE */ @Nullable - Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, + Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit); /** @@ -1439,7 +1441,8 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZRANGESTORE */ @Nullable - default Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range) { + default Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range) { return zRangeStoreByScore(dstKey, srcKey, range, org.springframework.data.redis.connection.Limit.unlimited()); } @@ -1455,7 +1458,7 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZRANGESTORE */ @Nullable - Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit); /** @@ -1470,7 +1473,7 @@ public interface RedisZSetCommands { */ @Nullable default Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, - org.springframework.data.domain.Range range) { + org.springframework.data.domain.Range range) { return zRangeStoreRevByScore(dstKey, srcKey, range, org.springframework.data.redis.connection.Limit.unlimited()); } @@ -1486,7 +1489,8 @@ public interface RedisZSetCommands { * @see Redis Documentation: ZRANGESTORE */ @Nullable - Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit); } diff --git a/src/main/java/org/springframework/data/redis/connection/StringRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/StringRedisConnection.java index f489f89aa..a46ea7250 100644 --- a/src/main/java/org/springframework/data/redis/connection/StringRedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/StringRedisConnection.java @@ -2059,7 +2059,8 @@ public interface StringRedisConnection extends RedisConnection { * @see Redis Documentation: ZRANGESTORE */ @Nullable - default Long zRangeStoreByScore(String dstKey, String srcKey, org.springframework.data.domain.Range range) { + default Long zRangeStoreByScore(String dstKey, String srcKey, + org.springframework.data.domain.Range range) { return zRangeStoreByScore(dstKey, srcKey, range, org.springframework.data.redis.connection.Limit.unlimited()); } @@ -2075,7 +2076,7 @@ public interface StringRedisConnection extends RedisConnection { * @see Redis Documentation: ZRANGESTORE */ @Nullable - Long zRangeStoreByScore(String dstKey, String srcKey, org.springframework.data.domain.Range range, + Long zRangeStoreByScore(String dstKey, String srcKey, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit); /** @@ -2090,7 +2091,7 @@ public interface StringRedisConnection extends RedisConnection { */ @Nullable default Long zRangeStoreRevByScore(String dstKey, String srcKey, - org.springframework.data.domain.Range range) { + org.springframework.data.domain.Range range) { return zRangeStoreRevByScore(dstKey, srcKey, range, org.springframework.data.redis.connection.Limit.unlimited()); } @@ -2106,7 +2107,8 @@ public interface StringRedisConnection extends RedisConnection { * @see Redis Documentation: ZRANGESTORE */ @Nullable - Long zRangeStoreRevByScore(String dstKey, String srcKey, org.springframework.data.domain.Range range, + Long zRangeStoreRevByScore(String dstKey, String srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit); // ------------------------------------------------------------------------- diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterZSetCommands.java index 6e2799d99..06f7d917d 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterZSetCommands.java @@ -210,7 +210,7 @@ class JedisClusterZSetCommands implements RedisZSetCommands { } @Override - public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -233,7 +233,7 @@ class JedisClusterZSetCommands implements RedisZSetCommands { } @Override - public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -256,7 +256,8 @@ class JedisClusterZSetCommands implements RedisZSetCommands { } @Override - public Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -279,7 +280,7 @@ class JedisClusterZSetCommands implements RedisZSetCommands { } @Override - public Long zCount(byte[] key, org.springframework.data.domain.Range range) { + public Long zCount(byte[] key, org.springframework.data.domain.Range range) { Assert.notNull(key, "Key must not be null"); Assert.notNull(range, "Range cannot be null for ZCOUNT"); @@ -395,7 +396,7 @@ class JedisClusterZSetCommands implements RedisZSetCommands { } @Override - public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { Assert.notNull(key, "Key must not be null"); Assert.notNull(range, "Range cannot be null for ZREMRANGEBYSCORE"); @@ -414,7 +415,7 @@ class JedisClusterZSetCommands implements RedisZSetCommands { } @Override - public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -538,19 +539,22 @@ class JedisClusterZSetCommands implements RedisZSetCommands { @Nullable @Override - public Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zRangeStoreByScore(dstKey, srcKey, range, limit, false); } @Nullable @Override - public Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zRangeStoreByScore(dstKey, srcKey, range, limit, true); } - private Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + private Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit, boolean rev) { Assert.notNull(dstKey, "Destination key must not be null"); diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisZSetCommands.java index b4e724548..9d2ddedfc 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisZSetCommands.java @@ -175,7 +175,7 @@ class JedisZSetCommands implements RedisZSetCommands { } @Override - public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -217,7 +217,7 @@ class JedisZSetCommands implements RedisZSetCommands { } @Override - public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -239,7 +239,8 @@ class JedisZSetCommands implements RedisZSetCommands { } @Override - public Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -271,7 +272,7 @@ class JedisZSetCommands implements RedisZSetCommands { } @Override - public Long zCount(byte[] key, org.springframework.data.domain.Range range) { + public Long zCount(byte[] key, org.springframework.data.domain.Range range) { Assert.notNull(key, "Key must not be null"); Assert.notNull(range, "Range must not be null"); @@ -405,7 +406,7 @@ class JedisZSetCommands implements RedisZSetCommands { } @Override - public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { Assert.notNull(key, "Key must not be null"); Assert.notNull(range, "Range for ZREMRANGEBYSCORE must not be null"); @@ -619,7 +620,7 @@ class JedisZSetCommands implements RedisZSetCommands { } @Override - public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -709,18 +710,21 @@ class JedisZSetCommands implements RedisZSetCommands { } @Override - public Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zRangeStoreByScore(dstKey, srcKey, range, limit, false); } @Override - public Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return zRangeStoreByScore(dstKey, srcKey, range, limit, true); } - private Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + private Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit, boolean rev) { Assert.notNull(dstKey, "Destination key must not be null"); diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveZSetCommands.java index 834197e3f..3017d4288 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveZSetCommands.java @@ -278,7 +278,7 @@ class LettuceReactiveZSetCommands implements ReactiveZSetCommands { if (ObjectUtils.nullSafeEquals(command.getDirection(), Direction.ASC)) { - Range range = RangeConverter.toRange(command.getRange()); + Range range = RangeConverter.toRange(command.getRange()); if (command.isWithScores()) { @@ -301,7 +301,7 @@ class LettuceReactiveZSetCommands implements ReactiveZSetCommands { } } else { - Range range = RangeConverter.toRange(command.getRange()); + Range range = RangeConverter.toRange(command.getRange()); if (command.isWithScores()) { @@ -351,7 +351,7 @@ class LettuceReactiveZSetCommands implements ReactiveZSetCommands { Assert.notNull(command.getKey(), "Key must not be null"); Assert.notNull(command.getRange(), "Range must not be null"); - Range range = RangeConverter.toRange(command.getRange()); + Range range = RangeConverter.toRange(command.getRange()); Mono result = cmd.zcount(command.getKey(), range); return result.map(value -> new NumericResponse<>(command, value)); @@ -483,7 +483,7 @@ class LettuceReactiveZSetCommands implements ReactiveZSetCommands { Assert.notNull(command.getKey(), "Key must not be null"); Assert.notNull(command.getRange(), "Range must not be null"); - Range range = RangeConverter.toRange(command.getRange()); + Range range = RangeConverter.toRange(command.getRange()); Mono result = cmd.zremrangebyscore(command.getKey(), range); return result.map(value -> new NumericResponse<>(command, value)); diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceZSetCommands.java index 23559d8c4..467512cb7 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceZSetCommands.java @@ -166,7 +166,7 @@ class LettuceZSetCommands implements RedisZSetCommands { } @Override - public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -203,7 +203,7 @@ class LettuceZSetCommands implements RedisZSetCommands { } @Override - public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -222,7 +222,8 @@ class LettuceZSetCommands implements RedisZSetCommands { } @Override - public Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -241,7 +242,7 @@ class LettuceZSetCommands implements RedisZSetCommands { } @Override - public Long zCount(byte[] key, org.springframework.data.domain.Range range) { + public Long zCount(byte[] key, org.springframework.data.domain.Range range) { Assert.notNull(key, "Key must not be null"); @@ -379,7 +380,7 @@ class LettuceZSetCommands implements RedisZSetCommands { } @Override - public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { Assert.notNull(key, "Key must not be null"); Assert.notNull(range, "Range for ZREMRANGEBYSCORE must not be null"); @@ -588,7 +589,7 @@ class LettuceZSetCommands implements RedisZSetCommands { } @Override - public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(key, "Key must not be null"); @@ -665,7 +666,8 @@ class LettuceZSetCommands implements RedisZSetCommands { } @Override - public Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(dstKey, "Destination key must not be null"); @@ -678,7 +680,8 @@ class LettuceZSetCommands implements RedisZSetCommands { } @Override - public Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, org.springframework.data.domain.Range range, + public Long zRangeStoreRevByScore(byte[] dstKey, byte[] srcKey, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { Assert.notNull(dstKey, "Destination key must not be null"); diff --git a/src/main/java/org/springframework/data/redis/core/BoundZSetOperations.java b/src/main/java/org/springframework/data/redis/core/BoundZSetOperations.java index cf53bc3ac..59649024d 100644 --- a/src/main/java/org/springframework/data/redis/core/BoundZSetOperations.java +++ b/src/main/java/org/springframework/data/redis/core/BoundZSetOperations.java @@ -1040,7 +1040,7 @@ public interface BoundZSetOperations extends BoundKeyOperations { * @see Redis Documentation: ZRANGESTORE */ @Nullable - default Long rangeAndStoreByScore(K dstKey, Range range) { + default Long rangeAndStoreByScore(K dstKey, Range range) { return rangeAndStoreByScore(dstKey, range, Limit.unlimited()); } @@ -1058,7 +1058,7 @@ public interface BoundZSetOperations extends BoundKeyOperations { * @see Redis Documentation: ZRANGESTORE */ @Nullable - Long rangeAndStoreByScore(K dstKey, Range range, Limit limit); + Long rangeAndStoreByScore(K dstKey, Range range, Limit limit); /** * Store all elements at {@code dstKey} with reverse ordering by score from {@literal ZSET} at the bound key with a @@ -1072,7 +1072,7 @@ public interface BoundZSetOperations extends BoundKeyOperations { * @see Redis Documentation: ZRANGESTORE */ @Nullable - default Long reverseRangeAndStoreByScore(K dstKey, Range range) { + default Long reverseRangeAndStoreByScore(K dstKey, Range range) { return reverseRangeAndStoreByScore(dstKey, range, Limit.unlimited()); } @@ -1089,7 +1089,7 @@ public interface BoundZSetOperations extends BoundKeyOperations { * @see Redis Documentation: ZRANGESTORE */ @Nullable - Long reverseRangeAndStoreByScore(K dstKey, Range range, Limit limit); + Long reverseRangeAndStoreByScore(K dstKey, Range range, Limit limit); /** * @return never {@literal null}. diff --git a/src/main/java/org/springframework/data/redis/core/DefaultZSetOperations.java b/src/main/java/org/springframework/data/redis/core/DefaultZSetOperations.java index 5b258b269..aa7d0745f 100644 --- a/src/main/java/org/springframework/data/redis/core/DefaultZSetOperations.java +++ b/src/main/java/org/springframework/data/redis/core/DefaultZSetOperations.java @@ -242,14 +242,14 @@ class DefaultZSetOperations extends AbstractOperations implements ZS } @Override - public Long rangeAndStoreByScore(K srcKey, K dstKey, Range range, Limit limit) { + public Long rangeAndStoreByScore(K srcKey, K dstKey, Range range, Limit limit) { byte[] rawDstKey = rawKey(dstKey); byte[] rawSrcKey = rawKey(srcKey); return execute(connection -> connection.zRangeStoreByScore(rawDstKey, rawSrcKey, range, limit)); } @Override - public Long reverseRangeAndStoreByScore(K srcKey, K dstKey, Range range, Limit limit) { + public Long reverseRangeAndStoreByScore(K srcKey, K dstKey, Range range, Limit limit) { byte[] rawDstKey = rawKey(dstKey); byte[] rawSrcKey = rawKey(srcKey); return execute(connection -> connection.zRangeStoreRevByScore(rawDstKey, rawSrcKey, range, limit)); diff --git a/src/main/java/org/springframework/data/redis/core/ZSetOperations.java b/src/main/java/org/springframework/data/redis/core/ZSetOperations.java index d2710d5d2..9b63935bd 100644 --- a/src/main/java/org/springframework/data/redis/core/ZSetOperations.java +++ b/src/main/java/org/springframework/data/redis/core/ZSetOperations.java @@ -1212,7 +1212,7 @@ public interface ZSetOperations { * @see Redis Documentation: ZRANGESTORE */ @Nullable - default Long rangeAndStoreByScore(K srcKey, K dstKey, Range range) { + default Long rangeAndStoreByScore(K srcKey, K dstKey, Range range) { return rangeAndStoreByScore(srcKey, dstKey, range, Limit.unlimited()); } @@ -1231,7 +1231,7 @@ public interface ZSetOperations { * @see Redis Documentation: ZRANGESTORE */ @Nullable - Long rangeAndStoreByScore(K srcKey, K dstKey, Range range, Limit limit); + Long rangeAndStoreByScore(K srcKey, K dstKey, Range range, Limit limit); /** * Store all elements at {@code dstKey} with reverse ordering by score from {@literal ZSET} at {@code srcKey} with a @@ -1246,7 +1246,7 @@ public interface ZSetOperations { * @see Redis Documentation: ZRANGESTORE */ @Nullable - default Long reverseRangeAndStoreByScore(K srcKey, K dstKey, Range range) { + default Long reverseRangeAndStoreByScore(K srcKey, K dstKey, Range range) { return reverseRangeAndStoreByScore(srcKey, dstKey, range, Limit.unlimited()); } @@ -1265,7 +1265,7 @@ public interface ZSetOperations { * @see Redis Documentation: ZRANGESTORE */ @Nullable - Long reverseRangeAndStoreByScore(K srcKey, K dstKey, Range range, Limit limit); + Long reverseRangeAndStoreByScore(K srcKey, K dstKey, Range range, Limit limit); /** * @return never {@literal null}. diff --git a/src/main/java/org/springframework/data/redis/support/collections/DefaultRedisZSet.java b/src/main/java/org/springframework/data/redis/support/collections/DefaultRedisZSet.java index 4fab38862..92487d2d0 100644 --- a/src/main/java/org/springframework/data/redis/support/collections/DefaultRedisZSet.java +++ b/src/main/java/org/springframework/data/redis/support/collections/DefaultRedisZSet.java @@ -273,13 +273,13 @@ public class DefaultRedisZSet extends AbstractRedisCollection implements R } @Override - public RedisZSet rangeAndStoreByScore(String dstKey, Range range, Limit limit) { + public RedisZSet rangeAndStoreByScore(String dstKey, Range range, Limit limit) { boundZSetOps.rangeAndStoreByScore(dstKey, range, limit); return new DefaultRedisZSet<>(getOperations().boundZSetOps(dstKey)); } @Override - public RedisZSet reverseRangeAndStoreByScore(String dstKey, Range range, Limit limit) { + public RedisZSet reverseRangeAndStoreByScore(String dstKey, Range range, Limit limit) { boundZSetOps.reverseRangeAndStoreByScore(dstKey, range, limit); return new DefaultRedisZSet<>(getOperations().boundZSetOps(dstKey)); } @@ -291,7 +291,7 @@ public class DefaultRedisZSet extends AbstractRedisCollection implements R } @Override - public Set removeByLex(Range range) { + public RedisZSet removeByLex(Range range) { boundZSetOps.removeRangeByLex(range); return this; } diff --git a/src/main/java/org/springframework/data/redis/support/collections/RedisZSet.java b/src/main/java/org/springframework/data/redis/support/collections/RedisZSet.java index d038ca942..bd0e77720 100644 --- a/src/main/java/org/springframework/data/redis/support/collections/RedisZSet.java +++ b/src/main/java/org/springframework/data/redis/support/collections/RedisZSet.java @@ -500,7 +500,7 @@ public interface RedisZSet extends RedisCollection, Set { * @since 3.0 * @see #rangeByScore(double, double) */ - default RedisZSet rangeAndStoreByScore(String dstKey, Range range) { + default RedisZSet rangeAndStoreByScore(String dstKey, Range range) { return rangeAndStoreByScore(dstKey, range, Limit.unlimited()); } @@ -516,7 +516,7 @@ public interface RedisZSet extends RedisCollection, Set { * @since 3.0 * @see #rangeByScore(double, double) */ - RedisZSet rangeAndStoreByScore(String dstKey, Range range, Limit limit); + RedisZSet rangeAndStoreByScore(String dstKey, Range range, Limit limit); /** * Store all elements at {@code dstKey} with reverse ordering by score from {@literal ZSET} at the bound key with a @@ -528,7 +528,7 @@ public interface RedisZSet extends RedisCollection, Set { * @since 3.0 * @see #reverseRangeByScore(double, double) */ - default RedisZSet reverseRangeAndStoreByScore(String dstKey, Range range) { + default RedisZSet reverseRangeAndStoreByScore(String dstKey, Range range) { return reverseRangeAndStoreByScore(dstKey, range, Limit.unlimited()); } @@ -543,7 +543,7 @@ public interface RedisZSet extends RedisCollection, Set { * @return a new {@link RedisZSet} pointing at {@code destKey} * @since 3.0 */ - RedisZSet reverseRangeAndStoreByScore(String dstKey, Range range, Limit limit); + RedisZSet reverseRangeAndStoreByScore(String dstKey, Range range, Limit limit); /** * Remove elements in range between {@code start} and {@code end} from sorted set. @@ -561,8 +561,7 @@ public interface RedisZSet extends RedisCollection, Set { * @return {@code this} set. * @since 2.5 */ - // TODO: Switch to RedisZSet - Set removeByLex(Range range); + RedisZSet removeByLex(Range range); /** * Remove elements with scores between {@code min} and {@code max} from sorted set with the bound key. diff --git a/src/test/java/org/springframework/data/redis/connection/RedisConnectionUnitTests.java b/src/test/java/org/springframework/data/redis/connection/RedisConnectionUnitTests.java index 9482de3dc..611e84750 100644 --- a/src/test/java/org/springframework/data/redis/connection/RedisConnectionUnitTests.java +++ b/src/test/java/org/springframework/data/redis/connection/RedisConnectionUnitTests.java @@ -1012,35 +1012,36 @@ class RedisConnectionUnitTests { } @Override - public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return delegate.zRangeByScoreWithScores(key, range, limit); } @Override - public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return delegate.zRevRangeByScore(key, range); } @Override - public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return delegate.zRevRangeByScore(key, range, limit); } @Override - public Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range, + public Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return delegate.zRevRangeByScoreWithScores(key, range, limit); } @Override - public Long zCount(byte[] key, org.springframework.data.domain.Range range) { + public Long zCount(byte[] key, org.springframework.data.domain.Range range) { return delegate.zCount(key, range); } @Override - public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Long zRemRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return delegate.zRemRangeByScore(key, range); } @@ -1050,23 +1051,25 @@ class RedisConnectionUnitTests { } @Override - public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range) { + public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range) { return delegate.zRangeByScore(key, range); } @Override - public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, + public Set zRangeByScore(byte[] key, org.springframework.data.domain.Range range, org.springframework.data.redis.connection.Limit limit) { return delegate.zRangeByScore(key, range, limit); } @Override - public Set zRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range) { + public Set zRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range) { return delegate.zRangeByScoreWithScores(key, range); } @Override - public Set zRevRangeByScoreWithScores(byte[] key, org.springframework.data.domain.Range range) { + public Set zRevRangeByScoreWithScores(byte[] key, + org.springframework.data.domain.Range range) { return delegate.zRevRangeByScoreWithScores(key, range); }