目录
Redis的客户端介绍

Jedis

Jedis连接池

Springboot下的整合
SpringDataRedis

1.导入依赖

2.配置文件

3.编写测试

注意:用以上方法存储的 对象 数据会默认序列化为字节形式,存在以下缺点

解决办法:
方案一:自定义RedisTemplate的序列化方式

方案二:采用StringRedisTemplate

我的例子(对于JSON的转换,我采用了FastJson):
1.导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
2.编写配置文件
spring:
redis:
host: \\自定义
port: \\自定义
password: \\自定义
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: 100
3.编写类:
@Data
public class User {
private String name;
private Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
}
4.测试
@SpringBootTest
class DemoApplicationTests {
@Autowired
private StringRedisTemplate redisTemplate;
@Test
public void testString(){
redisTemplate.opsForValue().set("Name","zhangsan");
Object name = redisTemplate.opsForValue().get("Name");
System.out.println("name="+name);
}
@Test
public void testUser(){
//创建对象
User user = new User("zhangsan",18);
String jsonString = JSON.toJSONString(user);
redisTemplate.opsForValue().set("user:1",jsonString);
String s = redisTemplate.opsForValue().get("user:1");
User user1 = JSON.parseObject(s, User.class);
System.out.println(user1);
}
}
总结:
本文介绍了如何在SpringBoot中整合Redis,包括使用Jedis连接池和SpringDataRedis。详细步骤涵盖了导入依赖、配置文件设置以及测试用例。针对默认的字节序列化问题,提供了自定义序列化和使用StringRedisTemplate的解决方案,并给出了FastJson转换JSON的示例。

758

被折叠的 条评论
为什么被折叠?



