最初在我们的代码中,我们与在单个节点上使用 RedisRedisTemplate
结合使用:JedisConnectionFactory
JedisPoolConfig
@Bean(name = "redisTemplate")
public RedisTemplate<String, String> getRedisTemplate(JedisConnectionFactory jedisConnectionFactory) {
RedisTemplate template = new RedisTemplate();
template.setConnectionFactory(jedisConnectionFactory);
// ...
return template;
}
@Bean
JedisConnectionFactory jedisConnectionFactory(Configuration config) {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setHostName(config.get(HOST));
jedisConnectionFactory.setPort(config.getInt(PORT));
jedisConnectionFactory.setUsePool(true);
jedisConnectionFactory.setPoolConfig(createJedisPoolConfig(config));
jedisConnectionFactory.afterPropertiesSet();
return jedisConnectionFactory;
}
JedisPoolConfig createJedisPoolConfig(Config config) {
JedisPoolConfig poolConfig = new JedisPoolConfig();
// ...
return poolConfig;
}
我们现在使用JedisCluster
Redis 集群。
当我们使用 RedisTemplate 时,我们使用了许多命令,例如redisTemplate.hasKey(cacheKey)
检查密钥是否存在以及redisTemplate.opsForValue().set
与RedisTemplate
.
这些方法似乎不适用于JedisCluster
.
有没有办法可以将 RedisTemplate 与 JedisCluster 结合使用,以避免重新编码这些方法,而只使用 RedisTemplate 提供的方法?
或者是否有替代命令可以用来代替 RedisTemplate 提供的命令?