Redis( 基础篇 ==> SpringDataRedis的使用
本章导学:
- SpringData与SpringDataRedis介绍
- RedisTemplate工具类的API使用
- SpringBoot整合SpringDataRedis
一、什么是SpringDataRedis
SpringData是Spring中数据操作的模块,包含了对各种数据库的集成。
其中对Redis的集成模块,就是SpringDataRedis
SpringDataRedis的特点如下:
提供了对不同Redis客户端的整合(Lettuce和Jedis(上一章提到的))
- 提供了RedisTemplate统一API来操作Redis
- 支持Redis的发布订阅模型
- 支持Redis哨兵和Redis集群
- 支持基于Lettuce的响应式变成
- 支持基于JDK、JSON、字符串,Spring对象的序列化和反序列化
- 支持基于Redis的JDKCollection实现
二、RedisTemplate工具类的API使用
在SpringDataRedis中提供了RedisTemplate工具类,里面封装了对供桌Redis的操作,并且将不同的数据类型的操作API封装到了不同的类型中
API | 返回类型 | 说明 |
redisTemplate.opsForValue() | ValueOperations | 操作String类型数据 |
redisTemplate.opsForHash() | HashOperations | 操作Hash类型数据 |
redisTemplate.opsForList() | ListOperations | 操作List类型数据 |
redisTemplate.opsForSet() | SetOperations | 操作Set类型数据 |
redisTemplate.opsForZSet() | ZSetOperations | 操作SortedSet类型数据 |
redisTemplate | 通用命令 |
三、SpringBoot整合SpringDataRedis
SpringBoot已经提供了对SpringDataRedis的支持,我们使用起来非常简单
分为以下几个步骤
- 引入依赖
- 配置文件
- 注入RedisTemplate
- 编写测试
3.1、引入依赖
<!-- Redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 连接池依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
3.2、配置文件
我们在applicaiton.yml里对Redis做个简单的配置
spring:
redis:
host: 192.168.75.128
port: 6379
password: 124856
#选择数据库
database: 3
#连接池
lettuce:
pool:
#最大连接
max-active: 8
#最大空闲连接
max-idle: 8
#最小空闲连接
min-idle: 0
#等待时间
max-wait: 100
3.3、注入RedisTemplat
我们创建个测试类,注入它
3.4、编写测试用例
package com.brrbaii;
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;
@SpringBootTest
public class RedisDemoTest {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testString(){
redisTemplate.opsForValue().set("name","brrbaii");
Object name = redisTemplate.opsForValue().get("name");
System.out.println(name);
}
}
查看测试结果
留坑
这里留个坑,我们去Linux系统下看看我们刚刚插入的数据
发现我们的key并不是在IDEA里写的name,而是一串字符后跟着一个name
我们去可视化界面看看插入的数据是什么
我们发现在我们的数据前,都跟着一串\xAC\xED\x00\x05t\x00\x07
至于为什么会这样,以及如何解决这种情况,我们下一篇中讲