2016-02-18 1 views
2

J'utilise ressort des données Redis Version 1.7.0.M1 et Jedis Version 2.8.0 Voici ma configurationComment config-Redis cluster lorsque l'utilisation ressort données Redis 1.7.0.M1

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> 
    <property name="connectionFactory" ref="redisConnectionFactory"></property> 
    <property name="keySerializer"> 
     <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> 
    </property> 
    <property name="hashKeySerializer"> 
     <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> 
    </property> 
    <property name="valueSerializer"> 
     <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> 
    </property> 
    <property name="hashValueSerializer"> 
     <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/> 
    </property> 
</bean> 

et utiliser 【redisTemplate.o psForValue(). get ("foo")】 pour tester

jeter l'exception

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 

Comment config-Redis cluster lorsque l'utilisation ressort données Redis 1.7.0.M1?

+0

Le cluster doit être configuré sur 'RedisConnectionFactory'. Pouvez-vous s'il vous plaît ajouter la configuration pour cela. De plus, il existe un exemple de projet pour Redis Cluster disponible sur github dans le référentiel [spring-data-examples] (https://github.com/spring-projects/spring-data-examples/tree/master/redis/cluster). comme dans la [documentation de référence] (http://docs.spring.io/spring-data/redis/docs/1.7.0.M1/reference/html/#cluster). –

Répondre

0

Fondamentalement, tout ce qui est nécessaire est de définir la collection inital de nœuds de cluster dans RedisClusterConfiguration et de fournir celui-ci à JedisConnectionFactory ou LettuceConnectionFactory.

@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); 
    } 
} 

Boot Spring fournira des propriétés de configuration (spring.redis.cluster.nodes, spring.redis.cluster.max-redirects) pour travailler avec groupe Redis dans la prochaine version. Voir commit/166a27 pour plus de détails. Le spring-data-examples repository contient déjà un exemple de prise en charge de cluster Spring Data Redis.

+0

merci! J'ai réduit ce problème –