Skip to content

Port Resolving Support in Spring-Data-Redis for Jedis #2781

Open
@anish8129

Description

@anish8129

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions