Upgrade SDR to use the RedisClient/RedisClusterClient instead of the legacy Jedis API#3315
Upgrade SDR to use the RedisClient/RedisClusterClient instead of the legacy Jedis API#3315tishun wants to merge 7 commits intospring-projects:mainfrom
Conversation
87dd0f2 to
ed0e1be
Compare
|
I'm not sure this is the best way forward. Many command class implementations (such as The problematic ones are in scripting and the Switching cluster connections to That being said, it would be a good first step to discuss various approaches before submitting a pull request. We are certainly not adopting another 20kLOC of tech debt. |
184d560 to
c9bf187
Compare
That's fair, I was aiming for a much smaller change but it quickly exploded and then I wanted to prototype something to talk about. I may have let my deadlines get the best of me. Lets try and discuss this and see what we can do better. |
c9bf187 to
56ce811
Compare
3fa6675 to
957ec0f
Compare
|
Some general information on the approach in the latest commit: The
To preserve complete backwards compatibility we are keeping the old JedisConnection and using it in conjunction with the The |
Cluster implementation Sentinel logic reused Integration and unit tests Fixed issues with pipelining and transactions Fixes issues with cluster operations Addressed a lot of warnings Changed the execute pattern to use a strategy pattern, more readable IMHO Fixed issue with database selection causing the tests to fail Fixed issue with configuration options not being applied Signed-off-by: Tihomir Mateev <tihomir.mateev@gmail.com>
Main goals: - Enable the JSON and Search APIs - No major changes to existing solution, reduce the scope of the change as much as possible - (if possible) facilitate future improvements Signed-off-by: Tihomir Mateev <tihomir.mateev@gmail.com>
…driver connection polling Signed-off-by: Tihomir Mateev <tihomir.mateev@gmail.com>
…essary code, add more tests Signed-off-by: Tihomir Mateev <tihomir.mateev@gmail.com>
957ec0f to
a7f8def
Compare
- do not configure the legacy mode; instead switch to legacy mode based on the version of the driver present in the classpath - older drivers not supporting the new API indicate the user wants to use the legacy logic - rename "StandardConnection" to "UnifiedJedisConnection" and make it package private, so that we can later on easily change it if the driver provides a better base interface Signed-off-by: Tihomir Mateev <tihomir.mateev@gmail.com>
Signed-off-by: Tihomir Mateev <tihomir.mateev@gmail.com>
Signed-off-by: Tihomir Mateev <tihomir.mateev@gmail.com>
5ac00f7 to
bdecc58
Compare
|
Summary of the last three commits: Applied comments by @mp911de Sentinel APIs migrated Cluster APIs migrated Replaced the |
(Currently discussing a drastically reduced version of the initial change, see first commit for reference)
Purpose
The purpose of this change is to enable consuming features that are only available in the UnifiedJedis API hierarchy ( including RedisClient/RedisClusterClient APIs that come with Jedis 7.2
Amongst other things we aim to (if possible) handle connection management inside the driver to enable connection-related features, such as client-side caching and client-side geographic failover.
Implementation details
Additional information