Ok, pesquisei por um tempo e encontrei ajuda em http://java.dzone.com/articles/spring-data-redis.
Isso aconteceu por causa da serialização Java.
O serializador de chave para redisTemplate precisa ser configurado para
StringRedisSerializer
ou seja, assim:<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"
/>
Agora a chave no redis é
vc:501381
. Ou, como @niconic diz, também podemos definir o serializador padrão para o serializador de string da seguinte maneira:
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:defaultSerializer-ref="stringRedisSerializer"
/>
o que significa que todas as nossas chaves e valores são strings. Observe, no entanto, que isso pode não ser preferível, pois você pode querer que seus valores não sejam apenas strings.
Se o seu valor for um objeto de domínio, você poderá usar o serializador Jackson e configurar um serializador conforme mencionado aqui, ou seja, assim:
<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
e configure seu modelo como:
<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"
/>