1. 首先安装redis
brew install redis
前台启动:redis-server ; crtrl + c 停止
后台启动:brew services start redis
后台停止:brew services stop redis
检查是否启动成功:redis-cli ping , 返回:PONG 启动成功
2. 添加依赖: xml 文件配置
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>4.0.0</version>
</dependency>
3. application.yml 文件添加配置连接: 下面只关注redis 部分就可以了
spring:
datasource:
#url: jdbc:mysql://127.0.0.1:3306/demo_db?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8
url: jdbc:mysql://localhost:3306/demo_db?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
data:
redis:
host: localhost
port: 6379
password: 123456
# database: 0
# jedis:
# pool:
# max-active: 10
# max-idle: 5
# min-idle: 1
# max-wait: 2000
mybatis:
mapper-locations: classpath:mapper/*.xml # mapper 的映射文件路径
type-aliases-package: com.example.demo.entity
4. 使用
redisTemplate:
Spring 提供的 Redis 模板类,用来操作 Redis,负责连接 Redis、发送命令、拿结果
opsForValue()
从总管家这里拿到“字符串类型操作器”
opsForList()
拿到“列表类型操作器”
opsForSet()
拿到“集合类型操作器”
opsForHash()
拿到“哈希类型操作器”
opsForZSet()
拿到“有序集合类型操作器”
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
------------------
redisTemplate.opsForValue().set("name", "张三");
Object name = redisTemplate.opsForValue().get("name");
System.out.println("从Redis中获取的值:" + name);
/// 将元素添加到指定队列中,左边添加和右边添加
redisTemplate.opsForList().leftPush("students", "大虾");
redisTemplate.opsForList().leftPush("students", "小兵");
/// 获取队列中左右的元素,并从队列中移除,用于消费消息
List<Object> students = redisTemplate.opsForList().range("students", 0, -1);
Object students1 = redisTemplate.opsForList().leftPop("students"); ///
// 从队列头部获取元素,并且从队列中删除该元素
Object students2 = redisTemplate.opsForList().rightPop("students"); //
//// 从队列尾部获取元素,并且从队列中删除该元素
System.out.println("从Redis 队列中获取的学生队列:" + students);
/// 将元素添加到指定集合中,集合中的元素是唯一的,重复添加不会生效,无序的,不重复
redisTemplate.opsForSet().add("hobbies", "篮球", "足球", "篮球");
/// 获取集合中的所有元素
System.out.println("从Redis集合中获取的爱好集合列表:" +
redisTemplate.opsForSet().members("hobbies"));
/// 将元素添加到指定的Hash中,Hash中的元素是键值对的形式,可以通过键获取对应的值
redisTemplate.opsForHash().put("user:1", "name", "张三");
redisTemplate.opsForHash().put("user:1", "age", 20);
Object name2 = redisTemplate.opsForHash().get("user:1", "name");
Object age = redisTemplate.opsForHash().get("user:1", "age");
System.out.println("从Redis Hash中获取的用户信息:" + name2 + ", age:" + age);
//// 有序集合: 每个元素都有一个分数score作为排序顺序
redisTemplate.opsForZSet().add("scores", "张三", 90);
redisTemplate.opsForZSet().add("scores", "李四", 80);
Set res = redisTemplate.opsForZSet().rangeWithScores("scores", 0, -1);
System.err.println("从Redis有序集合中获取的分数列表:" + res);