广州营销型网站手机网站建设的整体流程
web/
2025/10/6 12:15:02/
文章来源:
广州营销型网站,手机网站建设的整体流程,沈阳科技网站建设,wordpress 秀6.3 StringRedisTemplate
尽管JSON的序列化方式可以满足我们的需求#xff0c;但依然存在一些问题#xff0c;如图#xff1a; 为了在反序列化时知道对象的类型#xff0c;JSON序列化器会将类的class类型写入json结果中#xff0c;存入Redis#xff0c;会带来额外的内存…6.3 StringRedisTemplate
尽管JSON的序列化方式可以满足我们的需求但依然存在一些问题如图 为了在反序列化时知道对象的类型JSON序列化器会将类的class类型写入json结果中存入Redis会带来额外的内存开销。
为了减少内存的消耗我们可以采用手动序列化的方式换句话说就是不借助默认的序列化器而是我们自己来控制序列化的动作同时我们只采用String的序列化器这样在存储value时我们就不需要在内存中就不用多存储数据从而节约我们的内存空间 这种用法比较普遍因此SpringDataRedis就提供了RedisTemplate的子类StringRedisTemplate它的key和value的序列化方式默认就是String方式。 省去了我们自定义RedisTemplate的序列化方式的步骤而是直接使用
SpringBootTest
class RedisStringTests {Autowiredprivate StringRedisTemplate stringRedisTemplate;Testvoid testString() {// 写入一条String数据stringRedisTemplate.opsForValue().set(verify:phone:13600527634, 124143);// 获取string数据Object name stringRedisTemplate.opsForValue().get(name);System.out.println(name name);}private static final ObjectMapper mapper new ObjectMapper();Testvoid testSaveUser() throws JsonProcessingException {// 创建对象User user new User(虎哥, 21);// 手动序列化String json mapper.writeValueAsString(user);// 写入数据stringRedisTemplate.opsForValue().set(user:200, json);// 获取数据String jsonUser stringRedisTemplate.opsForValue().get(user:200);// 手动反序列化User user1 mapper.readValue(jsonUser, User.class);System.out.println(user1 user1);}}此时我们再来看一看存储的数据小伙伴们就会发现那个class数据已经不在了节约了我们的空间~ 最后小总结
RedisTemplate的两种序列化实践方案 方案一 自定义RedisTemplate修改RedisTemplate的序列化器为GenericJackson2JsonRedisSerializer 方案二 使用StringRedisTemplate写入Redis时手动把对象序列化为JSON读取Redis时手动把读取到的JSON反序列化为对象
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87905.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!