Move keepTTL to Expiration and remove superfluous methods from interfaces. Add tests for reactive variant and work around an open issue in Jedis to support KEEPTTL though the API does not offer that option directly.
Original Pull Request: #562
Remove justId from XClaimOptions and set the flag inside xClaimJustId to avoid errors when processing justId inside xClaim having a different return type.
Original Pull Request: #567
Replace limit != null checks with limit.isUnlimited() for non nullable parameters and adapt constructor visibility to owning class level.
Original Pull Request: #564
Add author and since tags. Introduce separate approximate() method instead of changing count(…) to retain backwards compatibility.
Original pull request: #561.
Guard tests to allow execution against single node instance for quick dev turnaround and replace usage of Optional with null and @Nullable annotations.
Original Pull Request: #558
LettuceStreamCommands.xRevRange converts Ranges with a StringCodec that produces Boundary<ByteBuffer>, while Lettuce expects the range's Boundary to include strings. The conversion worked well only in cases where the Range was unbounded (- or +), and failed with ClassCastException on the consuming site for other cases.
Original pull request: #556
rename(…) behavior in cluster-mode is now aligned with standalone Redis behavior that overwrites the target key if it already exists and the renamed key uses a different slot. Previously, the underlying restore command was called without the replace option which caused BUSYKEY failures.
Original Pull Request: #555
We now translate consistently connection/pooling exceptions in LettuceConnectionFactory by wrapping LettuceConnectionProvider with a variant that considers exception translation.
doPUnsubscribe(…) and doUnsubscribe(…) now consider the all flag to unsubscribe from all subscribed patterns/channels. Previously, both methods didn't consider all and were invoked with an empty byte array which unsubscribed from an empty pattern/channel name and left subscriptions active.
Original Pull Request: #549
It is now possible to hand a plain list to the converter that is then converted into a hash structure using index numbers as keys.
Original pull request: #546.
Tweak documentation wording. Remove trailing whitespaces. Remove unused methods. Improve method names. Return zero stats when stats do not get collected.
Original Pull Request: #545
We now expose CacheStatistics for RedisCache. Each cache tracks its statistics (retrievals, hits, misses, stores, removals, lock wait) locally. CacheStatistics is exposed through RedisCacheWriter to allow for statistics customization depending on the cache writer strategy. The statistic object is a singleton per cache instance that gets updated with as the cache operates.
RedisCache cache = …;
CacheStatistics statistics = cache.getStatistics();
statistics.getRetrievals();
statistics.getHits();
Original Pull Request: #545
RedisStaticMasterReplicaConfiguration.node(…) now returns the more specific RedisStaticMasterReplicaConfiguration type instead of returning the StaticMasterReplicaConfiguration interface.
Original pull request: #536.
We now use flatMapIterable(…).next() to return the first value from the hash. Previously, if the returned list was empty, we could return a null value in the mapping function which might have caused an exception.
Original Pull Request: #538