Dobře, chvíli jsem googlil a našel nápovědu na http://java.dzone.com/articles/spring-data-redis.
Stalo se to kvůli serializaci Java.
Serializátor klíčů pro redisTemplate musí být nakonfigurován na StringRedisSerializer
tedy takto:
<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"
/>
Nyní je klíč v redis vc:501381
.
Nebo jak říká @niconic, můžeme také nastavit samotný výchozí serializátor na řetězec serializátor takto:
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:defaultSerializer-ref="stringRedisSerializer"
/>
což znamená, že všechny naše klíče a hodnoty jsou řetězce. Všimněte si však, že to nemusí být vhodnější, protože možná budete chtít, aby vaše hodnoty nebyly jen řetězce.
Pokud je vaší hodnotou objekt domény, můžete použít serializátor Jackson a nakonfigurovat serializátor, jak je zde uvedeno, tj. takto:
<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
a nakonfigurujte svou šablonu 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"
/>