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
Set MKSTREAM by default when calling createGroup on the operations API as that should be the default behavior in the first place. Reformat code. Add since tags.
Original pull request: #527.
We now correctly check if a BLOCK option is configured using a timeout of zero or higher. Previously we only checked if the configured value is greater than zero and didn't consider that a timeout of zero blocks indefinitely.
Original Pull Request: #528