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
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
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.
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.
We now support a configurable BatchStrategy for RedisCache. The implementations consist of KEYS (default) and SCAN. Since SCAN is not supported with Jedis Cluster and SCAN requires a batch size, we default to KEYS.
Closes: #1721
Original Pull Request: #2051
We now accept a byte array as pattern for scan operations in addition to String patterns.
Also, use binary Jedis scan method to avoid bytes to String conversion.
Closes: #2006
Original Pull Request: #2051
Obtaining a Connection from RedisConnectionFactory and its reactive variant is now guarded by IllegalStateException that is thrown if the connection factory was not yet initialized.
Previously, connections could be obtained where configuration was partially applied.
Closes#2057
Reorder methods. Move rewriteConfig directly implemented on connection to DefaultedRedisConnection respective DefaultedRedisClusterConnection.
Add overload to run config rewrite on individual cluster nodes. Add tests. Add since tags and update Javadoc.
See #1992
Original pull request: #2012.
Let Cursor extend CloseableCursor. Refine nullability annotations and align nullability behavior in tests with actual nullability usage.
See: #1575
Original Pull Request: #2014
Move off deprecated StringUtils.isEmpty method. Fix type reference using the component type and not the component's component type. Add early return for null values.
Original Pull Request: #2015
MappingRedisConverter now accepts data for byte arrays as single property to avoid flattening out binary data into a collection form. We still accept data in a collection form to retain compatibility.
Closes: #1981
Original Pull Request: #2015
RedisConnectionProxy is now public so it can be used properly for Java proxy creation across different class loaders. Previously, creating a Java proxy from a different class loader failed because of visibility/access restrictions.
Closes#2016
Add support for Jedis Streams using JedisCluster. Add fromMany(…) for non-pipelined usage to JedisInvoker.
Reformat code, add author tags. Extract Jedis-specific stream type converters to StreamConverters. Properly convert StreamEntry and StreamEntryID into list/map. Update tests.
See #1711
Original pull request: #1977.
We now accept a type hint when calling getAllOf(…) to avoid materializing null instances when the actual type hint cannot resolve to an entity.
Closes#1995
Original Pull Request: #1996
RedisNode can now be constructed using an empty hostname. This can happen when a node is in failover state. RedisNode exposes hasValidHost() to check whether the node has a valid hostname.
Also, introduce copy constructor to avoid mutations caused by the builder.
Closes#1985
Original Pull Request: #1991