Jedis: Support of automated background topology refresh in cluster mode #3283
+62
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
Currently, when using
JedisConnectionFactoryfrom spring-data-redis, there is no support for configuring an automatic, periodic topology refresh for the Jedis client.This functionality was initially added only for Lettuce. At that time, Jedis did not provide a feature and interface to enable background, periodic topology refresh.
Issue: spring-projects/spring-boot#15630
Jedis has added support for automated background topology refresh, allowing users to configure a period at which Jedis refreshes the cluster node topology.
This was done from jedis v5.1.0:
Implementation details in pull request: redis/jedis#3596
Fix
Added support for configuring the topology refresh period duration in the
JedisClientConfigurationbuilder.By default, this value is set to null.
topologyRefreshPeriodin the configuration,nullis passed to the Jedis constructor (the default Jedis behavior). In this case, Jedis does not create or perform automatic background topology refresh.Example Code: Enabling Automated Topology Refresh with a Configured Period
Example Code: Disabling Automated Topology Refresh (Default/Existing Behavior)