Ok, ich habe eine Weile gegoogelt und Hilfe unter http://java.dzone.com/articles/spring-data-redis.
gefundenEs geschah wegen der Java-Serialisierung.
Der Key Serializer für redisTemplate muss auf StringRedisSerializer
konfiguriert werden d.h. so:
<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"
/>
Jetzt ist der Schlüssel in redis vc:501381
.
Oder wie @niconic sagt, wir können auch den Standard-Serializer selbst wie folgt auf den String-Serializer setzen:
<bean
id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnectionFactory"
p:defaultSerializer-ref="stringRedisSerializer"
/>
was bedeutet, dass alle unsere Schlüssel und Werte Zeichenfolgen sind. Beachten Sie jedoch, dass dies möglicherweise nicht vorzuziehen ist, da Sie möglicherweise möchten, dass Ihre Werte nicht nur Zeichenfolgen sind.
Wenn Ihr Wert ein Domänenobjekt ist, können Sie den Jackson-Serializer verwenden und einen Serializer wie hier erwähnt konfigurieren, z. B. so:
<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
und konfigurieren Sie Ihre Vorlage 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"
/>