0


Redis Java 集成到 Spring Boot

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~
🌱🌱个人主页:奋斗的明志
🌱🌱所属专栏:Redis

📚本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为展示我的学习过程及理解。文笔、排版拙劣,望见谅。

在这里插入图片描述

Redis Java 集成到 Spring Boot

一、使用 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 即可.
在这里插入图片描述

@RestControllerpublicclassMyController{@AutowiredprivateStringRedisTemplate redisTemplate;}

StringRedisTemplate 用来处理文本数据的
继承于RedisTemplate
RedisTemplate 可以处理文本数据也可以处理二进制数据

在这里插入图片描述

2.使用 String

@GetMapping("/testString")@ResponseBodypublicStringtestString(){//先清除之前的数据库
    redisTemplate.execute((RedisConnection connection)->{
        connection.flushAll();returnnull;});//对原生 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";}
  1. 该代码片段是一个 Spring Boot 控制器方法,通过 RedisTemplate 与 Redis 进行交互,并进行一些基本的操作
  2. redisTemplate.execute((RedisConnection connection) -> { ... }):这行代码调用了 RedisTemplateexecute 方法,执行一个 Redis 操作。具体来说,connection.flushAll() 会清空 Redis 中的所有数据(即调用 FLUSHALL 命令)。execute 方法通过 Lambda 表达式传递了一个 Redis 连接对象,用来执行 Redis 命令。执行完 flushAll 后,Redis 中的所有数据会被删除。
  3. redisTemplate.opsForValue() 相当于对命令进行进一步的封装,用它可以调用相关方法。
  • 客户端发送请求(返回OK)表明已经成功

在这里插入图片描述


  • 打印日志

在这里插入图片描述


3.使用 List

@GetMapping("/testList")@ResponseBodypublicStringtestList(){//先清除之前的数据库
    redisTemplate.execute((RedisConnection connection)->{
        connection.flushAll();returnnull;});
    redisTemplate.opsForList().leftPush("key","111");
    redisTemplate.opsForList().leftPush("key","222");
    redisTemplate.opsForList().leftPush("key","333");String value = redisTemplate.opsForList().leftPop("key");System.out.println("value: "+ value);

    value = redisTemplate.opsForList().leftPop("key");System.out.println("value: "+ value);

    value = redisTemplate.opsForList().leftPop("key");System.out.println("value: "+ value);return"OK";}
  • 客户端发送请求(返回OK)表明已经成功

在这里插入图片描述


  • 打印日志

在这里插入图片描述

4.使用 Set

@GetMapping("/testSet")@ResponseBodypublicStringtestSet(){//先清除之前的数据库
    redisTemplate.execute((RedisConnection connection)->{
        connection.flushAll();returnnull;});
    redisTemplate.opsForSet().add("key","111","222","333");Set<String> result = redisTemplate.opsForSet().members("key");System.out.println("result: "+ result);Boolean exists = redisTemplate.opsForSet().isMember("key","111");System.out.println("existe: "+ exists);Long count = redisTemplate.opsForSet().size("key");System.out.println("count: "+ count);

    redisTemplate.opsForSet().remove("key","111","222");
    result = redisTemplate.opsForSet().members("key");System.out.println("result: "+ result);return"OK";}
  • 客户端发送请求(返回OK)表明已经成功

在这里插入图片描述


  • 打印日志

在这里插入图片描述

5.使用 Hash

@GetMapping("/testHash")@ResponseBodypublicStringtestHash(){//先清除之前的数据库
    redisTemplate.execute((RedisConnection connection)->{
        connection.flushAll();returnnull;});
    redisTemplate.opsForHash().put("key","f1","111");Map<String,String> map =newHashMap<>();
    map.put("f2","222");
    map.put("f3","333");
    redisTemplate.opsForHash().putAll("key", map);String value =(String) redisTemplate.opsForHash().get("key","f1");System.out.println("value: "+ value);Boolean exists = redisTemplate.opsForHash().hasKey("key","f1");System.out.println("exists: "+ exists);

    redisTemplate.opsForHash().delete("key","f1","f2");Long len = redisTemplate.opsForHash().size("key");System.out.println("len: "+ len);return"OK";}
  • 客户端发送请求(返回OK)表明已经成功

在这里插入图片描述


  • 打印日志

在这里插入图片描述


6.使用 ZSet

@GetMapping("/testZSet")@ResponseBodypublicStringtestZSet(){//先清除之前的数据库
    redisTemplate.execute((RedisConnection connection)->{
        connection.flushAll();returnnull;});
    redisTemplate.opsForZSet().add("key","zhangsan",10);
    redisTemplate.opsForZSet().add("key","lisi",20);
    redisTemplate.opsForZSet().add("key","wangwu",30);Set<String> members = redisTemplate.opsForZSet().range("key",0,-1);System.out.println("members: "+ members);Set<ZSetOperations.TypedTuple<String>> membersWithScores = redisTemplate.opsForZSet().rangeWithScores("key",0,-1);System.out.println("membersWithScores: "+ membersWithScores);Double score = redisTemplate.opsForZSet().score("key","zhangsan");System.out.println("score: "+ score);

    redisTemplate.opsForZSet().remove("key","zhangsan");Long size = redisTemplate.opsForZSet().size("key");System.out.println("size: "+ size);Long rank = redisTemplate.opsForZSet().rank("key","lisi");System.out.println("rank: "+ rank);return"OK";}
  • 客户端发送请求(返回OK)表明已经成功

在这里插入图片描述


  • 打印日志

在这里插入图片描述

四、小结

  • 对于 Jedis 来说, 各个方法和 Redis 的命令基本是一致的.
  • 而集成到 Spring Boot 之后, 接口上和原始 Redis命令存在部分差别, 但是使用起来也并不困难, 只要大家熟悉 Redis 的基本操作, 还是很容易可以通过方法名字理解用法的.

在这里插入图片描述

在这里插入图片描述

标签: java redis spring boot

本文转载自: https://blog.csdn.net/2201_75724363/article/details/144346868
版权归原作者 明志学编程- 所有, 如有侵权,请联系我们删除。

“Redis Java 集成到 Spring Boot”的评论:

还没有评论