网站的软文 怎么做推广方案,苏州seo关键词排名,贵阳网页设计培训班,网络推广的策略方法问题描述#xff1a;
使用RedisTemplate存储的数据#xff0c;在 redis-cli 客户端查看时#xff0c;key 和 value 都会携带类似\xac\xad\这样的字符串。
原因#xff1a;
由于默认使用了 jdk 的序列化方式。以下是支持的序列化方式
项目一般都会有缓存#xff0c;常常…问题描述
使用RedisTemplate存储的数据在 redis-cli 客户端查看时key 和 value 都会携带类似\xac\xad\这样的字符串。
原因
由于默认使用了 jdk 的序列化方式。以下是支持的序列化方式
项目一般都会有缓存常常使用redis来存取缓存(现在已不推荐使用session存储缓存)我们的键key和值value都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializerStringRedisTemplate默认使用的是StringRedisSerializer。 解决方法
在系统启动完后初始化缓存序列化器。 将redisTemplate默认使用JdkSerializationRedisSerializer序列化 改为 stringRedis序列化方式。 key和value都使用String序列化 注
1. ApplicationRunner接口可以实现springboot应用启动后做一些初始化操作
2. 为什么使用Serializer
因为redis是以key-value的形式将数据存在内存中key就是简单的stringkey似乎没有长度限制不过原则上应该尽可能的短小且可读性强无论是否基于持久存储key在服务的整个生命周期中都会在内存中因此减小key的尺寸可以有效的节约内存同时也能优化key检索的效率。 value在redis中存储层面仍然基于string在逻辑层面可以是string/set/list/map不过redis为了性能考虑使用不同的“encoding”数据结构类型来表示它们。(例如linkedlistziplist等)。 所以可以理解为其实redis在存储数据时都把数据转化成了byte[]数组的形式那么在存取数据时需要将数据格式进行转化那么就要用到序列化和反序列化了这也就是为什么需要配置Serializer的原因。
参考链接https://blog.csdn.net/u010096624/article/details/109046714 源码追溯https://blog.csdn.net/qq_16159433/article/details/121491555 多方法实现https://blog.csdn.net/m4330187/article/details/108091447