spring-data-redis
spring-data-redis copied to clipboard
Port Resolving Support in Spring-Data-Redis for Jedis
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.
When connecting to a Redis cluster, you can use RedisClusterConfiguration
.
Have you tried the following methods?
When connecting to a Redis cluster, you can use
RedisClusterConfiguration
. Have you tried the following methods?
Yes I have used RedisClusterConfiguation
when I am connecting to redis cluster.
here is snippet link from the example project which I have mentioned in the description.
https://github.com/anish8129/prom-service/blob/4caefa13d23728d80058a34b0b36aa5d8a12fe00/src/main/java/com/redis/util/RedisBeanUtils.java#L60-L67