Spring Data RedisTemplate:序列化Value和HashValue

Swi*_*ing 5 spring serializer redis

我尝试了以下教程:http: //javakart.blogspot.in/2012/12/spring-data-redis-hello-world-example.html

我的问题与此有关: 奇怪的redis键与弹簧数据Jedis

我能够使用StringRedisSerializer解决密钥和hashkeys.

<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" 
/>
Run Code Online (Sandbox Code Playgroud)

但是我发现使用序列化程序获取值和hashvalue是一个问题.

我尝试添加这个:

p:valueSerializer-ref="stringRedisSerializer"
p:hashValueSerializer-ref="stringRedisSerializer"
Run Code Online (Sandbox Code Playgroud)

但是提示错误:"用户无法转换为java.lang.String"

任何人都可以分享如何使用序列化器的值/ hashvalue?

pat*_*pat 9

Redis将键和值存储为字符串.由持久层来处理解析.在示例中,User是POJO而不是String.我建议您使用JacksonJsonRedisSerializer而不是StringRedisSerializer.这样你就可以将json存储为你的价值.

<bean id="userJsonRedisSerializer" 
    class="org.springframework.data.redis.serializer.JacksonJsonRedisSerializer">
    <constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>
Run Code Online (Sandbox Code Playgroud)