Ok, j'ai cherché sur Google pendant un moment et j'ai trouvé de l'aide sur http://java.dzone.com/articles/spring-data-redis.
C'est arrivé à cause de la sérialisation Java.
Le sérialiseur de clé pour redisTemplate doit être configuré sur StringRedisSerializer
c'est-à-dire comme ceci :
<bean
id="jedisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="${redis.server}"
p:port="${redis.port}"
p:use-pool="true"/>
<bean
id="stringRedisSerializer"
class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:keySerializer-ref="stringRedisSerializer"
p:hashKeySerializer-ref="stringRedisSerializer"
/>
Maintenant, la clé dans redis est vc:501381
.
Ou comme le dit @niconic, nous pouvons également définir le sérialiseur par défaut lui-même sur le sérialiseur de chaîne comme suit :
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:defaultSerializer-ref="stringRedisSerializer"
/>
ce qui signifie que toutes nos clés et valeurs sont des chaînes. Notez cependant que cela n'est peut-être pas préférable, car vous voudrez peut-être que vos valeurs ne soient pas que des chaînes.
Si votre valeur est un objet de domaine, vous pouvez utiliser le sérialiseur Jackson et configurer un sérialiseur comme mentionné ici, c'est-à-dire comme ceci :
<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
et configurez votre modèle comme :
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:keySerializer-ref="stringRedisSerializer"
p:hashKeySerializer-ref="stringRedisSerializer"
p:valueSerialier-ref="userJsonRedisSerializer"
/>