Commit Graph

951 Commits

Author SHA1 Message Date
Mark Paluch
ce52baff98 Add support for GEOSEARCH/GEOSEARCHSTORE commands.
Supported through Lettuce only. GeoOperations support GEOSEARCH for now.

Closes: #2043
Original Pull Request: #2113
2021-07-14 11:27:23 +02:00
Mark Paluch
2f6dc3e79e Polishing.
Switch Jedis XADD call to XAddParams.

See #2047
Original pull request: #2118.
2021-07-14 10:49:49 +02:00
Mark John Moreno
f3f0c11f06 Add NOMKSTREAM option to XADD command.
Closes #2047
Original pull request: #2118.
2021-07-14 10:49:45 +02:00
Mark Paluch
3286d57691 Polishing.
Reorder methods. Remove unnecessary null guards. Introduce hashCode/equals methods to RedisConfiguration implementations. Refactor tests. Let LettuceClientConfiguration.builder apply settings from RedisURI. Introduce SentinelMasterId to implement equals method.

See #2116.
Original pull request: #2117.
2021-07-13 16:20:49 +02:00
bono007
19e9e7483b Add factory method to LettuceConnectionFactory to create RedisConfiguration from RedisURI.
Closes #2116.
Original pull request: #2117.
2021-07-13 16:19:52 +02:00
Mark Paluch
edde436f42 Avoid configuring the database number in JedisClientConfiguration used for Sentinels.
We now no longer configure the database number configured for data node access through JedisClientConfiguration instances that are used for Sentinel node connectivity. Previously, the configured database number lead to issuing a SELECT command on Sentinel that doesn't support database isolation.

Fixes: #2103.
Original Pull Request: #2112
2021-07-02 12:59:06 +02:00
Christoph Strobl
1b6737e9a5 Switch from plain String to DataType for ScanOptions.
Move the type method from KeyScanOptionsBuilder to the ScanOptionsBuilder to allow removal of the former.
Add a test for the reactive variant and allow SCAN tests with TYPE option to be executed starting with Redis 6.0.

Original Pull Request: #2109
2021-07-02 11:31:22 +02:00
Mark Paluch
674401c986 Add support for type using the SCAN command.
We now support the type argument for Keyspace scanning through KeyScanOptions.type.

Closes: #2089
Original Pull Request: #2109
2021-07-02 11:30:51 +02:00
Mark Paluch
085aca9f60 Consider exclusive Range for Jedis Stream range/pending commands.
We now consider Bound.exclusive(…) for XRANGE, XREVRANGE and XPENDING commands through Jedis.

Closes: #2044
Original Pull Request: #2108
2021-07-02 09:58:38 +02:00
Christoph Strobl
bdd6cee61c Switch to TimeoutUtils for zsetcommands.
Remove precise timeout calculation in zsetcommands and switch to TimeoutUtils and update a bit of docs and add some new lines here and there.

Original Pull Request: #2107
2021-07-01 18:07:13 +02:00
Mark Paluch
eefbd0d821 Refine RedisList.
Add missing Javadoc. Add trim overload accepting long to avoid potential integer downcasting. Add factory methods to RedisList.

See: #2039
Original Pull Request: #2107
2021-07-01 18:05:44 +02:00
Mark Paluch
54ad66b62c Add support for LMOVE and BLMOVE.
Closes: #2039
Original Pull Request: #2107
2021-07-01 18:05:15 +02:00
Mark Paluch
b6820f0f61 Polishing.
Introduce factory methods on RedisSet for easier construction of RediSet. Add javadoc.
Revise clear method to perform a DEL command instead of empty set intersection.

See #2037
Original Pull Request: #2105
2021-06-30 16:28:26 +02:00
Mark Paluch
90095d1c89 Add support for SMISMEMBER.
Allows querying with a single command whether multiple elements are members of a set. Also, refine DefaultRedisSet.containsAll(…) implementation.

Closes #2037
Original Pull Request: #2105
2021-06-30 16:27:51 +02:00
Christoph Strobl
280d9541da Support ZRANDMEMBER via RedisZSet.
Add randomValue() method to both RedisZSet and RedisSet.

See: #2049
Original Pull Request: #2104
2021-06-30 15:17:04 +02:00
Christoph Strobl
4c4c96e9cf Support HRANDFIELD command via RedisMap.
Add randomKey() and randomEntry() to RedisHash.
Update documentation and align methods with java terminology around keys vs. fields in hashes.
Move Converters off their custom Map.Entry implementation and use SimpleImmutableEntry instead.
Switch code that creates Map.Entry to the newly introduced Converters.entryOf method.

See: #2048
Original Pull Request: #2104
2021-06-30 15:16:55 +02:00
Mark Paluch
a523b821c5 Add support for ZRANDMEMBER.
Closes: #2049
Original Pull Request: #2104
2021-06-30 15:09:27 +02:00
Mark Paluch
0b8fbae2c3 Add support for HRANDFIELD.
Closes: #2048
Original Pull Request: #2104
2021-06-30 15:08:47 +02:00
Christoph Strobl
961ba9035d Align newly added method names in RedisZSet to RedisSet.
And add some documentation to RedisSet along the way.

#Original Pull Request: #2097
2021-06-30 08:06:49 +02:00
Christoph Strobl
d019ada080 Polishing.
Fix indention, variable names and add missing author tags.

Original Pull Request: #2097
2021-06-29 13:49:15 +02:00
Mark Paluch
38d3576052 Add reactive support for ZDIFF, ZDIFFSTORE, ZINTER, and ZUNION commands.
See: #2041 & #2042
Original Pull Request: #2097
2021-06-29 13:49:15 +02:00
Mark Paluch
8dc6f014ee Add difference, intersect, and union support to RedisZSet.
Original Pull Request: #2097
2021-06-29 13:49:15 +02:00
Mark Paluch
1d8ff06eef Add convenience constructor to DefaultStringTuple.
Original Pull Request: #2097
2021-06-29 13:49:15 +02:00
Mark Paluch
1c30d69195 Add imperative support for ZDIFF, ZDIFFSTORE, ZINTER, and ZUNION commands.
See: #2041 & #2042
Original Pull Request: #2097
2021-06-29 13:49:08 +02:00
Mark Paluch
755c8417a3 Polish RedisZSet.
Improve Javadoc. Add static factory methods for easier RedisZSet construction.

See #2007
Original Pull Request: #2088
2021-06-29 13:44:11 +02:00
Christoph Strobl
bdf15de653 Support precise sub second timeout for BZPOPMIN, BZPOPMAX.
In cases where the timeout is defined in msec we calculate a precise timeout for the BZPOP* operations.
#2102 will bring this behaviour also to List commands.

Original Pull Request: #2088
2021-06-29 07:52:14 +02:00
Mark Paluch
739b917922 Add popFirst and popLast methods to RedisZSet.
See #2007
Original Pull Request: #2088
2021-06-29 07:45:56 +02:00
Mark Paluch
0f2039d5a0 Add support for ZPOPMIN, ZPOPMAX and their blocking variants.
We now support ZPOPMIN, BZPOPMIN, ZPOPMAX and BZPOPMAX through the Template API for all drivers.

Closes #2007
Original Pull Request: #2088
2021-06-29 07:45:29 +02:00
Mark Paluch
d13f9da212 Ensure all pipelined commands use a dedicated connection to avoid lingering commands when using pipelining with flushing customization.
Original Pull Request: #2088
2021-06-29 07:44:33 +02:00
Mark Paluch
8c743d40ef Add support for ZMSCORE through score(key, values).
We now support Redis 6.2 ZMSCORE through the Template API and on the connection level for all drivers.

Closes #2038
Original Pull Request: #2088
2021-06-29 07:43:55 +02:00
Christoph Strobl
c878a933f5 Add SET options EXAT, PXAT
Original Pull Request: #2086
2021-06-28 11:03:33 +02:00
Christoph Strobl
f0b22ad76f Add GETEX options EXAT, PXAT
Original Pull Request: #2086
2021-06-28 11:03:21 +02:00
Mark Paluch
a53193946f Add support for GETEX and GETDEL through getAndExpire(…), getAndPersist(…) and getAndDelete(…) methods.
We now support Redis 6.2 GETEX and GETDEL commands through the Template API and on the connection level for all drivers.

Closes: #2050
Original Pull Request: #2086
2021-06-28 11:03:12 +02:00
Mark Paluch
2e33841648 Fix result sorting using Redis repository query methods.
We now correctly apply sorting when calling a repository query method with a Sort parameter or when defining the sort order as part of the method name.

Closes: #2080
Original Pull Request: #2087
2021-06-18 13:07:30 +02:00
Mark Paluch
f69146c2a6 Polishing.
Add since tags, equals/hashCode/toString methods. Reformat code.

Original pull request: #2060.
Closes #2055
2021-06-17 14:40:10 +02:00
yanam
1750b2a2d4 Add support for BitFieldSubCommands that generate multiple bit operations using non-chaining methods.
Original pull request: #2060.
Closes #2055
2021-06-17 14:06:46 +02:00
Mark Paluch
7cd0669e86 Polishing.
Extend copy(…) command with replace argument. Add support for reactive copy(…). Fix connection unit tests. Reorder methods.

Add since tags.

See #2040
Original pull request: #2059.
2021-06-15 11:55:17 +02:00
ihaohong
1a4eef347e Add support for COPY.
Closes #2040
Original pull request: #2059.
2021-06-15 11:53:56 +02:00
Mark Paluch
ba767fa86d Polishing.
Inline valueFromLoader method. Refine tests to not rely on the number of runtime CPU cores.

See #2079
Original pull request: #2082.
2021-06-15 09:30:45 +02:00
Piotr Mionskowski
30aeda562b Synchronize RedisCache.get(…) with ValueLoader only if value is absent.
RedisCache.get(…) now optimistically fetches the cache value before entering cache-wide synchronization. The previous version synchronized all calls to `get(key, valueLoader)`.

Closes #2079
Original pull request: #2082.
2021-06-15 09:29:20 +02:00
Mark Paluch
5747c7d5e6 Polishing.
Add leftPop/rightPop methods to BoundListOperations. Tweak Javadoc and add since tags. Extend tests.

Closes #1987
2021-06-14 10:51:37 +02:00
dengliming
3b146cc2cb Add support for LPOP and RPOP with count option.
Closes #1987
2021-06-14 10:51:23 +02:00
Mark Paluch
866010e71d Fix XREVRANGE using Lettuce to use the same connection.
XREVRANGE using Lettuce uses now the same connection instead of pinning execution to a dedicated connection.

Closes #2078
2021-06-09 15:58:21 +02:00
Christoph Strobl
2711181ec8 Polishing.
Add explicit cast update documentation and rename SubcriptionListener instance to NO_OP_...
Fix Java 16 compile error.

Original Pull Request: #2052
2021-05-21 10:14:38 +02:00
Mark Paluch
9480851a2e Add ReactiveRedisOperations.listenToLater(…) to await subscriptions.
Original Pull Request: #2052
2021-05-21 10:12:02 +02:00
Mark Paluch
fe51d78537 Add ReactiveRedisMessageListenerContainer.receiveLater(…) to await subscriptions.
Original Pull Request: #2052
2021-05-21 10:08:38 +02:00
Mark Paluch
328de94d85 Polishing.
Replace MonoProcessor with Sinks.

Original Pull Request: #2052
2021-05-21 10:08:15 +02:00
Mark Paluch
58e7aa57a2 Add support for SubscriptionListener using ReactiveRedisMessageListenerContainer.
Original Pull Request: #2052
2021-05-21 10:06:42 +02:00
Mark Paluch
0f1c59813e Polishing.
Add missing (at)Override annotations.

Original Pull Request: #2052
2021-05-21 10:06:05 +02:00
Mark Paluch
48d80e0fd4 Add support for subscription ready/unsubscription done events.
Original Pull Request: #2052
2021-05-21 10:05:14 +02:00