Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring数据模板:序列化值和HashValue_Spring_Redis_Serialization - Fatal编程技术网

Spring数据模板:序列化值和HashValue

Spring数据模板:序列化值和HashValue,spring,redis,serialization,Spring,Redis,Serialization,我尝试了以下教程: 我的问题与此有关: 我能够使用StringRedisSerializer解决键和散列键 <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/> <bean id="redisTemplate" class="org.springframework.data.redis.core.Redis

我尝试了以下教程:

我的问题与此有关:

我能够使用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" 
/>
但出现了一个错误: “无法将用户强制转换为java.lang.String”


任何人都可以分享如何使用值/哈希值的序列化程序吗?

Redis将键和值存储为字符串。由您的持久层来处理解析。在本例中,用户是POJO而不是字符串。我建议您使用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>


这似乎是将用户对象序列化为字符串对象。相反,您可以通过编写“class User implements java.io.Serializable”将用户对象标记为可序列化,然后java默认序列化程序将自动处理。所以最好不要在beans.xml中配置任何与“Serializer ref=”相关的内容。我们可以像这里那样使用多个类吗??
<bean id="userJsonRedisSerializer" 
    class="org.springframework.data.redis.serializer.JacksonJsonRedisSerializer">
    <constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>