我尝试过以下教程: http://javakart.blogspot.in/2012/12/spring-data-redis-hello-world-example.html
我的问题与此有关: Weird redis key with spring data 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"
/>
但是我发现使用序列化程序获取值和hashvalue是一个问题。
我尝试添加这个:
p:valueSerializer-ref="stringRedisSerializer"
p:hashValueSerializer-ref="stringRedisSerializer"
但是提示错误: “用户无法转换为java.lang.String”
有人可以分享如何使用序列化程序来获取值/ hashvalue吗?
答案 0 :(得分: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>