Spring Boot 接入 Redis
简介
Redis 是一种访问速度非常快的内存数据结构存储,用作数据库、缓存、消息代理和流引擎。提供 strings、hashes、lists、sets 等数据结构。可以解决会话缓存、消息队列、分布式锁、定期将数据集存储到硬盘等功能。
通过 Redis 设计实现更详细的功能可查阅文章底部连接,特别是接口文档,它涵盖了所有可实现功能。
实现功能
- 创建Spring Boot 项目
- Windows 环境下启动 Redis 服务;
- 实现会话缓存功能;
- 测试会话缓存功能;
一、创建 Spring Boot 项目并启动 Redis
1.使用任意方式(idea、eclipse、https://start.spring.io/等)搭建项目后,添加 Redis 以及 FastJSON 依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.48</version>
</dependency>
二、Windows 环境下启动 Redis 服务
1.下载 Redis Windows 客户端(https://github.com/tporadowski/redis/releases),进入根目录执行命令启动 Redis:
redis-server redis.windows.conf
三、实现会话缓存功能
1.创建并注入连接 Redis 会话工厂配置文件 RedisConfig.java :
package com.ikgade.demo.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;@Configuration
public class RedisConfig {@BeanLettuceConnectionFactory redisConnectionFactory() {// 连接 redis 配置RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();configuration.setPassword(""); // 未设置密码也要配置为空 否则抛出 NO AUTH 异常return new LettuceConnectionFactory(configuration);}
}
2.创建并实现会话缓存控制器 SessionController.java :
package com.ikgade.demo.controller;import com.alibaba.fastjson.JSONObject;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;@RestController
@RequestMapping("/session")
public class SessionController {@ResourceRedisTemplate<String, String> redisTemplate;@PostMapping("/set")public JSONObject setMessage(@RequestBody JSONObject jsonObject){redisTemplate.opsForValue().set(jsonObject.getString("key"), jsonObject.getString("val"));return jsonObject;}@GetMapping("/get")public JSONObject getMessage(@RequestBody JSONObject jsonObject){JSONObject res = new JSONObject();res.put("val", redisTemplate.opsForValue().get(jsonObject.getString("key")));return res;}
}
四、测试会话缓存功能
1.存储会话缓存:
2.获取会话缓存:
参考资料
参考手册链接:
https://docs.spring.io/spring-data/redis/docs/current/reference/html/
https://docs.spring.io/spring-data/redis/docs/2.6.10/reference/html/
案例仓库:
https://github.com/spring-projects/spring-data-examples/tree/main/redis
接口文档:
https://docs.spring.io/spring-data/redis/docs