We now try to eagerly apply a custom converter when reading Redis properties in the MappingRedisConverter before considering type hints from the hash.
We require type hints to properly restore the target type for a hash entry as Redis data is all byte arrays, so a simple String needs a type hint before we can load it back into an e.g. Object-typed property. Subtypes of properties (such as ZoneRegion for ZoneId) are sometimes not associated with a converter as only the parent type (ZoneId) is associated with a converter. Trying to convert the value into the subtype directly through our ConversionService would fail in that case.
Closes#2307
We now properly extract the byte array from a ByteBuffer by copying its content respecting the read position and limits.
Closes#2204
Original Pull Request: #2213
We now return a list containing a single empty KeyValue element when ReactiveHashOperations.hMGet(…) called for a single key returns no value.
Previously, the code used onErrorReturn(…) which returned the wrong value and suppressed errors.
Closes#2210
We now no longer try to cast the Lettuce connection to StatefulRedisConnection when eagerly initializing the shared connection. Instead, we now introduced another method to obtain the cluster connection.
Closes#2186
The documentation indicates that it's not possible to use the keyspace notification message listener on AWS ElastiCache. The added text describes a way to prevent Spring Data Redis from using the `CONFIG` command and make it possible to use the listener on AWS.
Closes#2181
Changing the remaining commands in JedisClusterKeyCommands to use the
topology's getKeyServingMasterNode to find the node of key, rather than calling
connection.clusterGetNodeForKey. clusterGetNodeForKey was making a cluster
keyslot call to the server to hash the key, rather than hashing it locally.
Closes: #2156
Original pull request: #2159.
Add author and since tags. Wrap connection allocation with fromSupplier(…). Move connection proxy decoration into doInConnection(…) as connection decoration isn't directly related to connection creation.
See #2145
Original pull request: #2162.
doCreateMono and doCreateFlux now no longer proxy the connection for commands invoked directly from the ReactiveRedisTemplate implementations as proxying isn't necessary for simple command invocation.
Original Pull Request: #2129