Ok, poszukałem przez chwilę i znalazłem pomoc na http://java.dzone.com/articles/spring-data-redis.
Stało się to z powodu serializacji Javy.
Serializator kluczy dla redisTemplate musi być skonfigurowany na StringRedisSerializer
czyli tak:
<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"
/>
Teraz klucz w redis to vc:501381
.
Lub jak mówi @niconic, możemy również ustawić domyślny serializator na serializator ciągów w następujący sposób:
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:defaultSerializer-ref="stringRedisSerializer"
/>
co oznacza, że wszystkie nasze klucze i wartości są ciągami. Zauważ jednak, że może to nie być preferowane, ponieważ możesz chcieć, aby Twoje wartości nie były tylko ciągami.
Jeśli twoją wartością jest obiekt domeny, możesz użyć serializatora Jackson i skonfigurować serializator, jak wspomniano tutaj, tj. W ten sposób:
<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
i skonfiguruj swój szablon jako:
<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"
/>