Spring Data RedisTemplate: Serializing the Value and HashValue

懵懂的女人 提交于 2019-12-01 04:06:34

问题


I tried following this tutorial: http://javakart.blogspot.in/2012/12/spring-data-redis-hello-world-example.html

My question is related to this: Weird redis key with spring data Jedis

I was able to solve the keys and hashkeys using the StringRedisSerializer .

<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" 
/>

However I found it a problem using a serializer for the value and hashvalue.

I tried adding this:

p:valueSerializer-ref="stringRedisSerializer"
p:hashValueSerializer-ref="stringRedisSerializer"

But an error prompted: "User cannot be cast to java.lang.String"

Can anyone share how to use a serializer for the value/hashvalue?


回答1:


Redis stores keys and values as string. It's up to your persistence layer to handle the parsing. In the example, User is a POJO and not a String. I suggest that you use JacksonJsonRedisSerializer instead of StringRedisSerializer. This way you're storing json as your value.

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


来源:https://stackoverflow.com/questions/24239145/spring-data-redistemplate-serializing-the-value-and-hashvalue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!