010_StringRedisTemplate
2024-05-11 14:28:41
010_StringRedisTemplate
上面的缺点就是会使用内存空间去占用字节码
1、为了节省内存空间,我们并不会使用JSON序列化来处理value,而是使用统一的String序列化器,要求只能存储String 类型的key和value。
2、当要存储Java对象的时候,手动完成对象的序列化以及反序列化
3、Spring中提供了一个StringRedisTemplate类,它的key以及value都是默认为String方式。省去了我们自定义RedisTemplate的过程。
代码测试如下。
package com.ym.redisdemo;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ym.redisdemo.pojo.User;
import lombok.val;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;@SpringBootTest
class RedisStringTests {//注入Redis@Autowiredprivate StringRedisTemplate stringRedisTemplate;/*** 存储字符串测试*/@Testvoid contextLoads() {//写入一条String数据stringRedisTemplate.opsForValue().set("lover","李易峰");//获取String数据Object name = stringRedisTemplate.opsForValue().get("lover");System.out.println("lover="+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:101",json);//获取数据String o = stringRedisTemplate.opsForValue().get("user:101");//手动反序列化User user1 = mapper.readValue(o, User.class);System.out.println(user1);}}
总结:
关于RedisTemplate的两种序列化实践方案
- 方案1:
(1) 自定义RedisTemplate
(2) 修改RedisTemplate的序列化器GenericJackson2JsonRedisSerializer - 方案2:
(1) 使用StringRedisTemplate
(2) 写入Redis时,需要手动把对象序列化为Json
(3) 读取Redis时,手动把读取的Json反序列化为对象
010_StringRedisTemplate相关推荐
最新文章
- MyBaties学习记录
- Noip2012同余方程
- 方立勋_30天掌握JavaWeb_Servlet事件监听器
- Nvelocity 模板引擎 实例
- java类什么时候卸载_java – Android:什么时候类被系统卸载?
- c++ 协程_Python3 协程(coroutine)介绍
- linux 6.2yum问题
- wps xml转换表格_PDF转换神器安装步骤
- 代码大全 服装尺寸图html,国际标准服装尺码对照表大全-实用衣服尺寸对照表...
- c++中getline()函数用法与坑
- MatrixOne混沌测试之道
- 微软壁纸。我全部都要
- 如何在移动钱包中搭建一个小程序应用商店
- 安装WebSphere Application Server
- 黑客入侵应急分析手工排查
- 无人机右手定则以及角度大小方向粗判断
- API-百度翻译-js使用
- c语言程序学生籍贯信息记录,c语言程序学生籍贯信息记录簿设计.doc
- 【板栗糖GIS】如何在CASS软件中输出PDF
- 【多目标追踪算法】Deepsort追踪实战