spring-projects / spring-projects/spring-data-redis
Port Resolving Support in Spring-Data-Redis for Jedis
@mp911de is already working on this.
Since Nov 27, 2023.
- Dominant language
- Java
- Stars
- 1.9k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
Hi,
I am trying to Test Redis Cluster Using TestContaienrs.
I have used lettuce to test, which actually requires Manual NAT port mapping to resolve the SocketAddress.
Here is an example: RedisConfig.java
Requirement
I want to have similar support for jedis as well in Spring-Data-Redis.
Proposing Implementation
After going through the code I noticed this redis.clients.jedis.HostAndPortMapper class
which we could use in the org.springframework.data.redis.connection.jedis.JedisClientConfiguration.
We need to add this new contract in the JedisClientConfiguration
/**
* @return the optional {@link HostAndPortMapper}.
*/
Optional<HostAndPortMapper> getHostAndPortMapper();
This will be implemented by the default DefaultJedisClientConfigurationBuilder
Implementation
I have tried this change on my local and tested as well.
PR #2780 is the change I am proposing.
Sample Example
A sample example of how to use it is added in this repo
Files to look for in this 👆 repo.
JedisClusterBasedIntegrationTest.java
RedisClusterTestContainer.java
JedisClusterTestContainer.java
NOTE:
Please suggest a better way to handle this in jedis if it already exist.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.