We now correctly apply if exists/if not exists constraints on the reactive zadd command.
Previously, we only considered upsert which wasn't sufficient to apply xx/nx.
Closes#2731
Replace qualified class name access of inner classes with simple names and imports.
Remove Java 8 guards. Extend supported temporal types in Jsr310Converters. Remove superfluous converter annotations.
Simplify tests.
See #2677
Original pull request: #2681
We now appropriately handle OffsetDateTime and OffsetTime the same as all other java.time types, supported as simple types on Spring application (persistent) entity classes.
Closes#2677
Now it is possible to construct a new, custom default RedisCacheConfiguration from an existing, default RedisCacheConfiguration.
This is useful in a Spring Boot context using the RedisCacheManagerBuilderCustomizer and acquiring access to the default RedisCacheConfiguration, which likely originated from Spring Boot Redis CacheProperties.
Resolves#2583
Reuse condition objects in command and version condition extensions.
Shut down ClientResources via ShutdownQueue and ensure shared client resources usage.
Add close support to our MethodArgumentsProvider. Reuse LettuceTestClientConfiguration for test client config settings.
Closes#2575
We now track subscriptions and unsubscriptions in the reactive API to ensure that we do not prematurely unsubscribe from a channel or pattern if the topic was subscribed multiple times.
Original Pull Request: #2467
We now support construction of RedisCredentialsProvider through LettuceClientConfiguration and RedisCredentialsProviderFactory.
The default implementation adapts credentials configured in RedisConfiguration objects.
Closes: #2376
Original Pull Request: #2387
Add reactive ZRANGESTORE support. Support rangeAndStore in RedisZSet.
Refine assertion messages. Refine overloads.
Original pull request: #2370.
See #2345
Consistently use clear(…) as method name. Use configured cache key serializer instead of the conversion service.
See #2379
Original pull request: #2380.
For the Jedis-based implementations of bzpopmin and bzpopmax, a NPE is
thrown if the provided timeout elapses and the server responds with a
null array.
Closes#2324
We now use correctly null to indicate absent keys when using reactive MGET. Previously, we used an empty byte buffer that could be incorrectly translated to an empty string when using the string codec. An empty byte buffer can also be returned if the value length is zero leading to a state that doesn't allow distinguishing between absence and empty value.
Closes#2402