Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c9a7f1b

Browse files
committed
Polish "Add HGETDEL, HGETEX and HSETEX hash commands".
This commit polishes the previous commit with the following: - Add missing `@Override` tag - Update javadoc to include details for returned values - Adds the `HSETEX` command to `LettuceCommand` Original Pull Request: #3226 Resolves: #3211 Signed-off-by: Chris Bono <chris.bono@broadcom.com>
1 parent 8ec4736 commit c9a7f1b

File tree

6 files changed

+31
-8
lines changed

6 files changed

+31
-8
lines changed

‎src/main/java/org/springframework/data/redis/connection/RedisHashCommands.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,8 @@ default List<Long> hExpireAt(byte @NonNull [] key, long unixTime, byte @NonNull
551551
*
552552
* @param key must not be {@literal null}.
553553
* @param fields must not be {@literal null}.
554-
* @return empty {@link List} if key does not exist. {@literal null} when used in pipeline / transaction.
554+
* @return list of values for deleted {@code fields} ({@literal null} for fields that does not exist) or an
555+
* empty {@link List} if key does not exist or {@literal null} when used in pipeline / transaction.
555556
* @see <a href="https://redis.io/commands/hgetdel">Redis Documentation: HGETDEL</a>
556557
*/
557558
List<byte[]> hGetDel(byte @NonNull [] key, byte @NonNull [] @NonNull... fields);
@@ -562,7 +563,8 @@ default List<Long> hExpireAt(byte @NonNull [] key, long unixTime, byte @NonNull
562563
*
563564
* @param key must not be {@literal null}.
564565
* @param fields must not be {@literal null}.
565-
* @return empty {@link List} if key does not exist. {@literal null} when used in pipeline / transaction.
566+
* @return list of values for given {@code fields} or an empty {@link List} if key does not
567+
* exist or {@literal null} when used in pipeline / transaction.
566568
* @see <a href="https://redis.io/commands/hgetex">Redis Documentation: HGETEX</a>
567569
*/
568570
List<byte[]> hGetEx(byte @NonNull [] key, Expiration expiration,

‎src/main/java/org/springframework/data/redis/connection/jedis/JedisConverters.java‎

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,22 @@
1515
*/
1616
package org.springframework.data.redis.connection.jedis;
1717

18-
import org.springframework.data.redis.connection.*;
1918
import redis.clients.jedis.GeoCoordinate;
2019
import redis.clients.jedis.HostAndPort;
2120
import redis.clients.jedis.Protocol;
2221
import redis.clients.jedis.args.BitOP;
2322
import redis.clients.jedis.args.FlushMode;
2423
import redis.clients.jedis.args.GeoUnit;
2524
import redis.clients.jedis.args.ListPosition;
26-
import redis.clients.jedis.params.*;
25+
import redis.clients.jedis.params.GeoRadiusParam;
26+
import redis.clients.jedis.params.GeoSearchParam;
27+
import redis.clients.jedis.params.GetExParams;
28+
import redis.clients.jedis.params.HGetExParams;
29+
import redis.clients.jedis.params.HSetExParams;
30+
import redis.clients.jedis.params.ScanParams;
31+
import redis.clients.jedis.params.SetParams;
32+
import redis.clients.jedis.params.SortingParams;
33+
import redis.clients.jedis.params.ZAddParams;
2734
import redis.clients.jedis.resps.GeoRadiusResponse;
2835
import redis.clients.jedis.util.SafeEncoder;
2936

@@ -48,19 +55,27 @@
4855
import org.springframework.data.geo.Metric;
4956
import org.springframework.data.geo.Metrics;
5057
import org.springframework.data.geo.Point;
58+
import org.springframework.data.redis.connection.BitFieldSubCommands;
5159
import org.springframework.data.redis.connection.BitFieldSubCommands.BitFieldIncrBy;
5260
import org.springframework.data.redis.connection.BitFieldSubCommands.BitFieldSet;
5361
import org.springframework.data.redis.connection.BitFieldSubCommands.BitFieldSubCommand;
62+
import org.springframework.data.redis.connection.RedisGeoCommands;
5463
import org.springframework.data.redis.connection.RedisGeoCommands.DistanceUnit;
5564
import org.springframework.data.redis.connection.RedisGeoCommands.GeoLocation;
5665
import org.springframework.data.redis.connection.RedisGeoCommands.GeoRadiusCommandArgs;
5766
import org.springframework.data.redis.connection.RedisGeoCommands.GeoRadiusCommandArgs.Flag;
67+
import org.springframework.data.redis.connection.RedisHashCommands;
5868
import org.springframework.data.redis.connection.RedisListCommands.Position;
69+
import org.springframework.data.redis.connection.RedisNode;
70+
import org.springframework.data.redis.connection.RedisServer;
71+
import org.springframework.data.redis.connection.RedisServerCommands;
5972
import org.springframework.data.redis.connection.RedisStringCommands.BitOperation;
6073
import org.springframework.data.redis.connection.RedisStringCommands.SetOption;
6174
import org.springframework.data.redis.connection.RedisZSetCommands.ZAddArgs;
75+
import org.springframework.data.redis.connection.SortParameters;
6276
import org.springframework.data.redis.connection.SortParameters.Order;
6377
import org.springframework.data.redis.connection.SortParameters.Range;
78+
import org.springframework.data.redis.connection.ValueEncoding;
6479
import org.springframework.data.redis.connection.convert.Converters;
6580
import org.springframework.data.redis.connection.convert.ListConverter;
6681
import org.springframework.data.redis.connection.convert.StringToRedisClientInfoConverter;

‎src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,6 +1252,7 @@ static class TypeHints {
12521252
COMMAND_OUTPUT_TYPE_MAPPING.put(EXPIREAT, BooleanOutput.class);
12531253
COMMAND_OUTPUT_TYPE_MAPPING.put(HEXISTS, BooleanOutput.class);
12541254
COMMAND_OUTPUT_TYPE_MAPPING.put(HSET, BooleanOutput.class);
1255+
COMMAND_OUTPUT_TYPE_MAPPING.put(HSETEX, BooleanOutput.class);
12551256
COMMAND_OUTPUT_TYPE_MAPPING.put(HSETNX, BooleanOutput.class);
12561257
COMMAND_OUTPUT_TYPE_MAPPING.put(MOVE, BooleanOutput.class);
12571258
COMMAND_OUTPUT_TYPE_MAPPING.put(COPY, BooleanOutput.class);

‎src/main/java/org/springframework/data/redis/connection/lettuce/LettuceHashCommands.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ public List<byte[]> hGetEx(byte @NonNull [] key, Expiration expiration, byte @No
287287
.toList(source -> source.getValueOrElse(null));
288288
}
289289

290+
@Override
290291
public Boolean hSetEx(byte @NonNull [] key, @NonNull Map<byte[], byte[]> hashes, HashFieldSetOption condition,
291292
Expiration expiration) {
292293

‎src/main/java/org/springframework/data/redis/core/HashOperations.java‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public interface HashOperations<H, HK, HV> {
8787
*
8888
* @param key must not be {@literal null}.
8989
* @param hashKeys must not be {@literal null}.
90-
* @return {@literal null} when used in pipeline / transaction.
90+
* @return list of values for the given fields or {@literal null} when used in pipeline / transaction.
9191
* @since 4.0
9292
*/
9393
List<HV> getAndDelete(@NonNull H key, @NonNull Collection<@NonNull HK> hashKeys);
@@ -99,7 +99,7 @@ public interface HashOperations<H, HK, HV> {
9999
* @param key must not be {@literal null}.
100100
* @param expiration is optional.
101101
* @param hashKeys must not be {@literal null}.
102-
* @return {@literal null} when used in pipeline / transaction.
102+
* @return list of values for the given fields or {@literal null} when used in pipeline / transaction.
103103
* @since 4.0
104104
*/
105105
List<HV> getAndExpire(@NonNull H key, Expiration expiration, @NonNull Collection<@NonNull HK> hashKeys);
@@ -111,7 +111,7 @@ public interface HashOperations<H, HK, HV> {
111111
* @param m must not be {@literal null}.
112112
* @param condition is optional.
113113
* @param expiration is optional.
114-
* @return {@literal null} when used in pipeline / transaction.
114+
* @return whether all fields were set or {@literal null} when used in pipeline / transaction.
115115
* @since 4.0
116116
*/
117117
Boolean putAndExpire(@NonNull H key, @NonNull Map<? extends @NonNull HK, ? extends HV> m,

‎src/test/java/org/springframework/data/redis/core/DefaultHashOperationsIntegrationTests.java‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@
2121
import java.io.IOException;
2222
import java.time.Duration;
2323
import java.time.Instant;
24-
import java.util.*;
24+
import java.util.Arrays;
25+
import java.util.Collection;
26+
import java.util.Collections;
27+
import java.util.List;
28+
import java.util.Map;
2529
import java.util.concurrent.TimeUnit;
2630

2731
import org.assertj.core.api.InstanceOfAssertFactories;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /