RedisSentinelClientSideCacheTest.java
package redis.clients.jedis.csc;
import io.redis.test.utils.RedisVersion;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Tag;
import redis.clients.jedis.*;
import redis.clients.jedis.util.RedisVersionUtil;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
@Tag("integration")
public class RedisSentinelClientSideCacheTest extends UnifiedJedisClientSideCacheTestBase {
private static final String MASTER_NAME = "mymaster";
protected static HostAndPort sentinel1;
protected static HostAndPort sentinel2;
private static Set<HostAndPort> sentinels;
private static final JedisClientConfig masterClientConfig = DefaultJedisClientConfig.builder()
.resp3().password("foobared").build();
private static final JedisClientConfig sentinelClientConfig = DefaultJedisClientConfig.builder()
.resp3().build();
@BeforeAll
public static void prepareEndpoints() {
sentinel1 = Endpoints.getRedisEndpoint("sentinel-standalone2-1").getHostAndPort();
sentinel2 = Endpoints.getRedisEndpoint("sentinel-standalone2-3").getHostAndPort();
sentinels = new HashSet<>(Arrays.asList(sentinel1, sentinel2));
}
@Override
protected RedisSentinelClient createRegularJedis() {
return RedisSentinelClient.builder().masterName(MASTER_NAME).clientConfig(masterClientConfig)
.sentinels(sentinels).sentinelClientConfig(sentinelClientConfig).build();
}
@Override
protected RedisSentinelClient createCachedJedis(CacheConfig cacheConfig) {
return RedisSentinelClient.builder().masterName(MASTER_NAME).clientConfig(masterClientConfig)
.sentinels(sentinels).sentinelClientConfig(sentinelClientConfig).cacheConfig(cacheConfig)
.build();
}
@BeforeAll
public static void prepare() {
try (
RedisSentinelClient sentinelClient = RedisSentinelClient.builder().masterName(MASTER_NAME)
.clientConfig(masterClientConfig).sentinels(sentinels)
.sentinelClientConfig(sentinelClientConfig).build();
Jedis master = new Jedis(sentinelClient.getCurrentMaster(), masterClientConfig)) {
assumeTrue(RedisVersionUtil.getRedisVersion(master).isGreaterThanOrEqualTo(RedisVersion.V7_4),
"Jedis Client side caching is only supported with 'Redis 7.4' or later.");
}
}
}