Ok, ho cercato su Google per un po' e ho trovato aiuto su http://java.dzone.com/articles/spring-data-redis.
È successo a causa della serializzazione di Java.
Il serializzatore chiave per redisTemplate deve essere configurato su StringRedisSerializer
cioè in questo modo:
<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"
/>
Ora la chiave in redis è vc:501381
.
O come dice @niconic, possiamo anche impostare il serializzatore predefinito stesso sul serializzatore di stringhe come segue:
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:defaultSerializer-ref="stringRedisSerializer"
/>
il che significa che tutte le nostre chiavi e valori sono stringhe. Nota tuttavia che questo potrebbe non essere preferibile, poiché potresti volere che i tuoi valori non siano solo stringhe.
Se il tuo valore è un oggetto di dominio, puoi utilizzare il serializzatore Jackson e configurare un serializzatore come menzionato qui, ad esempio in questo modo:
<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
e configura il tuo modello come:
<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"
/>