引言
SpringDataRedis和之前介绍的Jedis一样都是Java的redis客户端
SpringData是Spring中数据擦欧总的模块,包括对各种数据库的集成
其中,Redis的集成模块就是SpringDataRedis
当然SpringDataRedis也有很多的版本,这里我们可以选择一个稳定版本来使用。
几个好处
1.提供了对不同的Redis客户端的整合
2.提供了RedisTemplate的统一的API来操作Redis
3.支持Redis哨兵和redis集群
4.支持Redis的发布订阅模型
5.支持基于Lettuce的响应式编程
6.支持基于JDK,JSON,字符串,Spring对象的数据序列化及反序列化
7.支持基于Redis的JDKCollection的实现
8.Jedis中大量的原生的Redis操作,存储的往往是字符串,面对复杂的对象时要繁重的手动化操作,没有SpringDataRedis的操作方便。
一些缺点
我们Jedis中的指令往往是原生的Redis的操作,而SpringDataRedis将其进行了封装分组,学习成本较高。
依赖项
<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>
传统的jar包引入
传统的jar导入并不多赘述,也不推荐。
众所周知,传统Jar包的导入即去对应的网址下载所需的jar包,然后放在指定的目录的下,但这么做有很多的问题与缺点
统jar包导入的缺点
首先要去找到对应的官网下的对应版本的jar包,有时候还会遇到广告的网址,要去做一个筛选判断,而且即便找到了对应好的所需jar包的官网,繁重的英文,大量的不知道干什么的文件......
而且即便是找到了正确的资源jar包,较慢的下载速度,较为繁琐的引入方式,让人很难受。
Maven项目管理
这里我们采用Maven项目管理的方式来完成jar包的引入,这里的另一个好处是,传统的项目的创建,比如idea的项目,在eclipse上未必能运行。而采用Maven项目管理的方式,也一定程度上提高了项目的兼容性。同时在Maven项目中的pom.xml中直接导坐标的形式,一定程度上非常非常非常方便。
pom.xml依赖如下:
<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>
接下来我们做一下刷新。
完成了Jar包的导入。
yml的配置
我们首先找到application.properties文件,将其后缀名改成yml
yml和properties有什么区别呢?
properties 和 yml 都是 Spring Boot 支持的两种配置文件,它们可以看作是 Spring Boot 在不同时期的两款“产品”。在 Spring Boot 时代已经不需要使用 XML 文件格式来配置项目了,取而代之的是 properties 或 yml 文件。
properties 配置文件属于早期,也是目前创建 Spring Boot(2.x)项目时默认的配置文件格式,而 yml 可以看做是对 properties 配置文件的升级,属于 Spring Boot 的“新版”配置文件。
properties 和 yml 的区别主要体现在以下 4 点:
- 定义和定位不同;
- 语法不同;
- yml 更好的配置多种数据类型;
- yml 支持多种语言、通用性更好。
yml中配置如下:
spring:
redis:
host: 127.0.0.1
port: 6379
password: 123456
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: 100ms
完成配置。
测试用例
package com.example.lyyshop;
import com.example.lyyshop.Dao.DaoMapper;
import com.example.lyyshop.RealClass.User;
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 java.util.List;
@SpringBootTest
class LyyShopApplicationTests {
@Autowired(required = false)
private RedisTemplate redisTemplate;
@Test
void contextLoads() {
redisTemplate.opsForValue().set("name","redis");
}
}
接下来我们连接redis,输入get name
成功获取到"redis"