Springboot整合Redis客户端
文章目录
- 1.引入依赖
- 2.yml文件配置
- 3.使用(StringRedisTemplate)
- 概述
- 解决的问题
- 缺点
- 示例代码
- 4.使用(RedisTemplate)
1.引入依赖
<!--redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--common-pool连接池依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
2.yml文件配置
spring:
redis:
host: redis地址
port: 6379
password: 密码
# 连接池
lettuce:
pool:
max-active: 10 # 最大连接
max-idle: 10 # 最大空闲连接
min-idle: 1 # 最小空闲连接
time-between-eviction-runs: 10s # 连接等待时间
3.使用(StringRedisTemplate)
概述
使用Spring默认提供的StringRedisTemplate,他的key value序列化默认就是String方式,省去自定义RedisTemplate的过程
解决的问题
1.默认的RedisTemplate,添加到redis的数据会序列化为字节形式,可读性差,内存占用较大
2.使用自定义的RedisTemplate,key序列化为String,value序列化为Object,添加到redis的数据会多记录一行"@class"用于反序列化
缺点
存储**对象**数据
每次写数据需要手动序列化,读数据需要手动反序列化
示例代码
@Autowired
private StringRedisTemplate stringRedisTemplate;
//1.针对String数据
@Test
public testString(){
//写入一条String数据
stringRedisTemplate.opsForValue.set("name","虎哥");
//获取string数据
Object name = stringRedisTemplate.opsForValue.get("name");
//打印name
………………
}
//SpringMvc默认json序列化工具
private static final ObjectMapper mapper = new ObjectMapper();
//2.针对对象类型数据
@Test
public testObject(){
//创建对象
User user = new User("jack","21");
//手动序列化
String json = mapper.writeValueAsString(user);
//写入数据
stringRedisTemplate.opsForValue.set("name",json);
String jsonName = stringRedisTemplate.opsForValue.get("name");
//反序列化
User user1 = mapper.readValue(jsonName,User.class);
//打印user1
}