Redis Java 集成到 Spring Boot_java springboot redis
Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~
🌱🌱个人主页:奋斗的明志
🌱🌱所属专栏:Redis
📚本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为展示我的学习过程及理解。文笔、排版拙劣,望见谅。
Redis Java 集成到 Spring Boot
- 一、使用 Spring Boot 连接 Redis 单机
-
- 1.创建Spring Boot 项目
- 2.勾选相关依赖(Dependencies)
- 3.界面显示
- 二、配置 Redis 服务地址
-
- 1.在 application.yml 中配置
- 2.映射端口号
- 三、创建 Controller 类
-
- 1.创建一个 MyController
- 2.使用 String
- 3.使用 List
- 4.使用 Set
- 5.使用 Hash
- 6.使用 ZSet
- 四、小结
一、使用 Spring Boot 连接 Redis 单机
1.创建Spring Boot 项目
2.勾选相关依赖(Dependencies)
- NoSQL 中的 Spring Data Redis
- 把 Web 中的 Spring Web 也勾选⼀下.
- 方便写接口进行后续测试.
3.界面显示
二、配置 Redis 服务地址
1.在 application.yml 中配置
spring: data: redis: host: 127.0.0.1 # 地址 port: 8888 # 映射的端口号
补充:
Spring Boot 1.x 和 Spring Boot 2.x 中,spring.redis.host 用于配置 Redis 连接属性。
Spring Boot 3.x 中,spring.redis.host 已经弃用。
从 Spring Boot 2.x 开始,引入了 spring.data.redis 作为配置 Redis 连接的方式,并且在 Spring Boot 3.x 中也可以使用 spring.data.redis 进行配置。
2.映射端口号
- 用Shell8 进行配置,需要一个公网ip
三、创建 Controller 类
1.创建一个 MyController
由于当前只是写简单的测试代码, 我们就不进⾏分层了. 就只创建个简单的 Controller 即可.
@RestControllerpublic class MyController { @Autowired private StringRedisTemplate redisTemplate;}
StringRedisTemplate 用来处理文本数据的
继承于RedisTemplate
RedisTemplate 可以处理文本数据也可以处理二进制数据
2.使用 String
@GetMapping(\"/testString\")@ResponseBodypublic String testString() { //先清除之前的数据库 redisTemplate.execute((RedisConnection connection) -> { connection.flushAll(); return null; }); //对原生 redis 又做了进一步封装 redisTemplate.opsForValue().set(\"key\", \"111\"); redisTemplate.opsForValue().set(\"key2\", \"222\"); redisTemplate.opsForValue().set(\"key3\", \"333\"); String value = redisTemplate.opsForValue().get(\"key\"); System.out.println(\"value:\" + value); return \"OK\";}
- 该代码片段是一个 Spring Boot 控制器方法,通过 RedisTemplate 与 Redis 进行交互,并进行一些基本的操作
redisTemplate.execute((RedisConnection connection) -> { ... })
:这行代码调用了RedisTemplate
的execute
方法,执行一个Redis
操作。具体来说,connection.flushAll()
会清空 Redis 中的所有数据(即调用FLUSHALL
命令)。execute
方法通过Lambda
表达式传递了一个Redis
连接对象,用来执行Redis
命令。执行完flushAll
后,Redis
中的所有数据
会被删除。redisTemplate.opsForValue()
相当于对命令进行进一步的封装,用它可以调用相关方法。