使用 spring-data-redis 1.7.0.M1 时如何配置 redis-cluster

tao*_*xie 5 redis spring-data-redis redis-cluster

我使用 spring-data-redis 版本 1.7.0.M1,jedis 版本 2.8.0\n这是我的配置

\n\n

\n\n\n\n\n\n\n\n\n\n\n

\n\n
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">\n    <property name="connectionFactory" ref="redisConnectionFactory"></property>\n    <property name="keySerializer">\n        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>\n    </property>\n    <property name="hashKeySerializer">\n        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>\n    </property>\n    <property name="valueSerializer">\n        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>\n    </property>\n    <property name="hashValueSerializer">\n        <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/>\n    </property>\n</bean>\n
Run Code Online (Sandbox Code Playgroud)\n\n

并使用 \xe3\x80\x90redisTemplate.opsForValue().get("foo")\xe3\x80\x91 进行测试

\n\n

抛出异常

\n\n
 org.springframework.dao.InvalidDataAccessApiUsageException: MOVED 12182 192.168.1.223:7002; nested exception is redis.clients.jedis.exceptions.JedisMovedDataException: MOVED 12182 192.168.1.223:7002\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用spring-data-redis 1.7.0.M1时如何配置redis-cluster?

\n

Chr*_*obl 2

基本上,所需要做的就是设置集群节点的初始集合RedisClusterConfiguration并将其提供给JedisConnectionFactoryLettuceConnectionFactory

@Configuration
class Config {

    List<String> clusterNodes = Arrays.asList("127.0.0.1:30001", "127.0.0.1:30002", "127.0.0.1:30003");

    @Bean
    RedisConnectionFactory connectionFactory() {
      return new JedisConnectionFactory(new RedisClusterConfiguration(clusterNodes));
    }

    @Bean
    RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {

      // just used StringRedisTemplate for simplicity here.
      return new StringRedisTemplate(factory);
    }
}
Run Code Online (Sandbox Code Playgroud)

Spring Boot 将在下一版本中提供用于与 Redis 集群配合使用的配置属性 ( spring.redis.cluster.nodes、 )。spring.redis.cluster.max-redirects有关详细信息,请参阅commit/166a27

spring -data-examples 存储库已经包含 Spring Data Redis 集群支持的示例。