Okej, googlade runt ett tag och hittade hjälp på http://java.dzone.com/articles/spring-data-redis.
Det hände på grund av Java-serialisering.
Nyckelserializern för redisTemplate måste konfigureras till StringRedisSerializer
dvs så här:
<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 är nyckeln i redis vc:501381
.
Eller som @niconic säger, vi kan också ställa in själva standardserializern till strängserializern enligt följande:
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:defaultSerializer-ref="stringRedisSerializer"
/>
vilket betyder att alla våra nycklar och värden är strängar. Observera dock att detta kanske inte är att föredra, eftersom du kanske vill att dina värden inte bara ska vara strängar.
Om ditt värde är ett domänobjekt kan du använda Jackson serializer och konfigurera en serializer som nämns här, dvs så här:
<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
och konfigurera din mall som:
<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"
/>