|
19 | 19 | */ |
20 | 20 | package io.lettuce.core; |
21 | 21 |
|
22 | | -import static io.lettuce.core.protocol.CommandType.*; |
23 | | - |
24 | | -import java.time.Duration; |
25 | | -import java.time.Instant; |
26 | | -import java.util.Date; |
27 | | -import java.util.List; |
28 | | -import java.util.Map; |
29 | | -import java.util.Set; |
30 | | -import java.util.function.Supplier; |
31 | | - |
32 | 22 | import io.lettuce.core.GeoArgs.Unit; |
33 | 23 | import io.lettuce.core.api.StatefulConnection; |
34 | | -import io.lettuce.core.api.reactive.*; |
| 24 | +import io.lettuce.core.api.reactive.BaseRedisReactiveCommands; |
| 25 | +import io.lettuce.core.api.reactive.RedisAclReactiveCommands; |
| 26 | +import io.lettuce.core.api.reactive.RedisGeoReactiveCommands; |
| 27 | +import io.lettuce.core.api.reactive.RedisHLLReactiveCommands; |
| 28 | +import io.lettuce.core.api.reactive.RedisHashReactiveCommands; |
| 29 | +import io.lettuce.core.api.reactive.RedisKeyReactiveCommands; |
| 30 | +import io.lettuce.core.api.reactive.RedisListReactiveCommands; |
| 31 | +import io.lettuce.core.api.reactive.RedisScriptingReactiveCommands; |
| 32 | +import io.lettuce.core.api.reactive.RedisServerReactiveCommands; |
| 33 | +import io.lettuce.core.api.reactive.RedisSetReactiveCommands; |
| 34 | +import io.lettuce.core.api.reactive.RedisSortedSetReactiveCommands; |
| 35 | +import io.lettuce.core.api.reactive.RedisStringReactiveCommands; |
| 36 | +import io.lettuce.core.api.reactive.RedisTransactionalReactiveCommands; |
35 | 37 | import io.lettuce.core.cluster.api.reactive.RedisClusterReactiveCommands; |
36 | 38 | import io.lettuce.core.codec.Base16; |
37 | 39 | import io.lettuce.core.codec.RedisCodec; |
|
59 | 61 | import reactor.core.publisher.Flux; |
60 | 62 | import reactor.core.publisher.Mono; |
61 | 63 |
|
| 64 | +import java.time.Duration; |
| 65 | +import java.time.Instant; |
| 66 | +import java.util.Date; |
| 67 | +import java.util.List; |
| 68 | +import java.util.Map; |
| 69 | +import java.util.Set; |
| 70 | +import java.util.function.Supplier; |
| 71 | + |
| 72 | +import static io.lettuce.core.protocol.CommandType.EXEC; |
| 73 | +import static io.lettuce.core.protocol.CommandType.GEORADIUS; |
| 74 | +import static io.lettuce.core.protocol.CommandType.GEORADIUSBYMEMBER; |
| 75 | +import static io.lettuce.core.protocol.CommandType.GEORADIUSBYMEMBER_RO; |
| 76 | +import static io.lettuce.core.protocol.CommandType.GEORADIUS_RO; |
| 77 | + |
62 | 78 | /** |
63 | 79 | * A reactive and thread-safe API for a Redis connection. |
64 | 80 | * |
@@ -855,22 +871,22 @@ public Mono<Boolean> expire(K key, Duration seconds, ExpireArgs expireArgs) { |
855 | 871 | } |
856 | 872 |
|
857 | 873 | @Override |
858 | | - public Mono<Boolean> hexpire(K key, long seconds, List<V> fields) { |
| 874 | + public Mono<Boolean> hexpire(K key, long seconds, K... fields) { |
859 | 875 | return hexpire(key, seconds, null, fields); |
860 | 876 | } |
861 | 877 |
|
862 | 878 | @Override |
863 | | - public Mono<Boolean> hexpire(K key, long seconds, ExpireArgs expireArgs, List<V> fields) { |
| 879 | + public Mono<Boolean> hexpire(K key, long seconds, ExpireArgs expireArgs, K... fields) { |
864 | 880 | return createMono(() -> commandBuilder.hexpire(key, seconds, expireArgs, fields)); |
865 | 881 | } |
866 | 882 |
|
867 | 883 | @Override |
868 | | - public Mono<Boolean> hexpire(K key, Duration seconds, List<V> fields) { |
| 884 | + public Mono<Boolean> hexpire(K key, Duration seconds, K... fields) { |
869 | 885 | return hexpire(key, seconds, null, fields); |
870 | 886 | } |
871 | 887 |
|
872 | 888 | @Override |
873 | | - public Mono<Boolean> hexpire(K key, Duration seconds, ExpireArgs expireArgs, List<V> fields) { |
| 889 | + public Mono<Boolean> hexpire(K key, Duration seconds, ExpireArgs expireArgs, K... fields) { |
874 | 890 | LettuceAssert.notNull(seconds, "Timeout must not be null"); |
875 | 891 | return hexpire(key, seconds.toMillis() / 1000, expireArgs, fields); |
876 | 892 | } |
@@ -907,11 +923,48 @@ public Mono<Boolean> expireat(K key, Instant timestamp, ExpireArgs expireArgs) { |
907 | 923 | return expireat(key, timestamp.toEpochMilli() / 1000, expireArgs); |
908 | 924 | } |
909 | 925 |
|
| 926 | + @Override |
| 927 | + public Mono<Boolean> hexpireat(K key, long timestamp, K... fields) { |
| 928 | + return hexpireat(key, timestamp, null, fields); |
| 929 | + } |
| 930 | + |
| 931 | + @Override |
| 932 | + public Mono<Boolean> hexpireat(K key, long timestamp, ExpireArgs expireArgs, K... fields) { |
| 933 | + return createMono(() -> commandBuilder.hexpireat(key, timestamp, expireArgs, fields)); |
| 934 | + } |
| 935 | + |
| 936 | + @Override |
| 937 | + public Mono<Boolean> hexpireat(K key, Date timestamp, K... fields) { |
| 938 | + return hexpireat(key, timestamp, null, fields); |
| 939 | + } |
| 940 | + |
| 941 | + @Override |
| 942 | + public Mono<Boolean> hexpireat(K key, Date timestamp, ExpireArgs expireArgs, K... fields) { |
| 943 | + LettuceAssert.notNull(timestamp, "Timestamp must not be null"); |
| 944 | + return hexpireat(key, timestamp.getTime() / 1000, expireArgs, fields); |
| 945 | + } |
| 946 | + |
| 947 | + @Override |
| 948 | + public Mono<Boolean> hexpireat(K key, Instant timestamp, K... fields) { |
| 949 | + return hexpireat(key, timestamp, null, fields); |
| 950 | + } |
| 951 | + |
| 952 | + @Override |
| 953 | + public Mono<Boolean> hexpireat(K key, Instant timestamp, ExpireArgs expireArgs, K... fields) { |
| 954 | + LettuceAssert.notNull(timestamp, "Timestamp must not be null"); |
| 955 | + return hexpireat(key, timestamp.toEpochMilli() / 1000, expireArgs, fields); |
| 956 | + } |
| 957 | + |
910 | 958 | @Override |
911 | 959 | public Mono<Long> expiretime(K key) { |
912 | 960 | return createMono(() -> commandBuilder.expiretime(key)); |
913 | 961 | } |
914 | 962 |
|
| 963 | + @Override |
| 964 | + public Mono<Long> hexpiretime(K key, K... fields) { |
| 965 | + return createMono(() -> commandBuilder.hexpiretime(key, fields)); |
| 966 | + } |
| 967 | + |
915 | 968 | @Override |
916 | 969 | public <T> Flux<T> fcall(String function, ScriptOutputType type, K... keys) { |
917 | 970 | return createFlux(() -> commandBuilder.fcall(function, type, false, keys)); |
@@ -1577,6 +1630,11 @@ public Mono<Boolean> persist(K key) { |
1577 | 1630 | return createMono(() -> commandBuilder.persist(key)); |
1578 | 1631 | } |
1579 | 1632 |
|
| 1633 | + @Override |
| 1634 | + public Mono<Boolean> hpersist(K key, K... fields) { |
| 1635 | + return createMono(() -> commandBuilder.hpersist(key, fields)); |
| 1636 | + } |
| 1637 | + |
1580 | 1638 | @Override |
1581 | 1639 | public Mono<Boolean> pexpire(K key, long milliseconds) { |
1582 | 1640 | return pexpire(key, milliseconds, null); |
|
0 commit comments