Oké, ik heb een tijdje gegoogled en hulp gevonden op http://java.dzone.com/articles/spring-data-redis.
Het gebeurde vanwege Java-serialisatie.
De key serializer voor redisTemplate moet worden geconfigureerd als StringRedisSerializer
d.w.z. als volgt:
<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"
/>
Nu is de sleutel in redis vc:501381
.
Of zoals @niconic zegt, we kunnen de standaard serializer zelf ook als volgt instellen op de string serializer:
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:defaultSerializer-ref="stringRedisSerializer"
/>
wat betekent dat al onze sleutels en waarden strings zijn. Houd er echter rekening mee dat dit misschien niet de voorkeur heeft, omdat u misschien wilt dat uw waarden niet alleen maar tekenreeksen zijn.
Als uw waarde een domeinobject is, kunt u Jackson-serializer gebruiken en een serializer configureren zoals hier vermeld, d.w.z. als volgt:
<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
en configureer uw sjabloon als:
<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"
/>