Redis缓存-序列化对象存储乱码问题的解决
程序员文章站
2022-07-01 09:04:58
使用redis缓存对象会出现下图现象:键值对都是乱码形式。解决以上问题:如果是xml配置的我们直接注入官方给定的keyserializer,valueserializer,hashkeyseriali...
使用redis缓存对象会出现下图现象:
键值对都是乱码形式。
解决以上问题:
如果是xml配置的
我们直接注入官方给定的keyserializer,valueserializer,hashkeyserializer即可:
<bean id="apiredistemplate" class="org.springframework.data.redis.core.redistemplate" p:connection-factory-ref="apicacheredisconnectionfactory"> <property name="keyserializer"> <bean class="org.springframework.data.redis.serializer.genericjackson2jsonredisserializer" /> </property> <property name="valueserializer"> <bean class="org.springframework.data.redis.serializer.genericjackson2jsonredisserializer" /> </property> <property name="hashkeyserializer"> <bean class="org.springframework.data.redis.serializer.genericjackson2jsonredisserializer" /> </property> <property name="hashvalueserializer"> <bean class="org.springframework.data.redis.serializer.genericjackson2jsonredisserializer" /> </property> <property name="stringserializer"> <bean class="org.springframework.data.redis.serializer.stringredisserializer" /> </property> </bean>
spring boot 项目配置redisconfig的时候使用以下方法:
@configuration public class redisconfig { @bean("jsonredistemplate") public redistemplate<object, object> redistemplate(redisconnectionfactory redisconnectionfactory) throws unknownhostexception { redistemplate<object, object> template = new redistemplate<object, object>(); template.setconnectionfactory(redisconnectionfactory); //解决日期序列化问题 objectmapper om = new objectmapper(); om.setdateformat(new simpledateformat("yyyy-mm-dd hh:mm:ss")); genericjackson2jsonredisserializer genericjackson2jsonredisserializer = new genericjackson2jsonredisserializer(om); template.setdefaultserializer(genericjackson2jsonredisserializer); return template; } }
redis存入中文,取出来是乱码wenti
默认情况下,用redis存入中文,取出时会出现乱码情况,如图:
解决
我们再启动redis时,可以在redis-cli 后面加上 --raw,如图
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
上一篇: 远程连接服务器的方法for linux