redis存取数据流

博客讲述了在使用Spring Redis时遇到的Java.io.EOFException问题,原因是value序列化配置不正确。通过将value序列化配置改为Jackson2JsonRedisSerializer,实现了对String类型以及复杂对象的正常存取,解决了异常并确保了数据的顺利存取。
摘要由CSDN通过智能技术生成

java.io.EOFException已解决 , 是spring-redis取value时的序列化问题

今天使用NoSql之redis缓存一个小小的String的值时,用java死活取不出来


把容器里配的redis的value序列化配置为Jackson版本的 , 就能自由存取value了

报错:(这图片是临时找的 , 我报错时没截图)
这图片是临时找的 , 我报错时没截图

spring-redis报这个错的朋友 , 好好看看这个 :

在这里插入图片描述

完整配置:

<!-- 3 配置redisTemplate --> 
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">

	<!--3.1注入工厂--> 
	<property name="connectionFactory" ref="jedisConnectionFactory">
	</property> 
	
	<!--3.2 key的序列化配置 -->
	<property name="keySerializer"> 
		<bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> 
	</property>
	
	<!--3.3 value序列化配置 --> 
	<property name="valueSerializer" ref="jackson2JsonRedisSerializer">
</bean>

<!-- json序列化 --> 
<bean id="jackson2JsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
	<constructor-arg value="java.lang.Object"> 
	</constructor-arg> 
</bean>

把上面图片中的代码看完 , 我报错时用的是下面的jdk序列化配置 , redis的String类型的value取不了

<property name="valueSerializer"> 
	<bean  class="org.springframework.data.redis.serializer.StringRedisSerializer" /> 
</property>

后来改成了String类型的序列化:

<property name="valueSerializer"> 
	<bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> 
</property>

然后String类型的value是正常取了 , java.io.EOFException也解决 , 但这配置是不能正常取对象或集合类型的 , 最后改成了Jackson序列化:

<!--3.3 value序列化配置 -->
 <property name="valueSerializer" ref="jackson2JsonRedisSerializer"> 

 <!-- json序列化 -->
 <bean id="jackson2JsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer"> 
 	<constructor-arg value="java.lang.Object"> 
 	</constructor-arg> 
 </bean>

然后一切都顺顺利利的了 , ok
还可以用别的序列化呢 , genic啥Jackson啥的 , 博大精深 …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值