在 Spring 中操作 Redis

这篇具有很好参考价值的文章主要介绍了在 Spring 中操作 Redis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🧸欢迎来到dream_ready的博客,📜相信您对博主首页也很感兴趣o (ˉ▽ˉ;)

📜redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿

目录

 1、引入依赖

2、对 Redis 的配置文件进行书写 

 3、Spring中使用 StringRedisTemplate 这个类操作数据库

4、对set 和 get 相关命令举例

5、Spring 中没有封装的命令

6、对 List 相关命令举例

7、对 Set 相关命令举例

8、对 Hash 相关命令操作

9、对 ZSet 进行操作

10、注:学习此篇博客方法


1、引入依赖

创建 Spring 项目时,一定要引入这个依赖

这是操作 redis 的依赖

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

2、对 Redis 的配置文件进行书写 

这里以演示本地连接为例,若想本地操作远程服务器的redis,则要进行更为麻烦的配置,此处就不再展示了,毕竟本文主题是教大家spring如何操作redis 

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

注:若redis配置的有密码,或者想要使用某个固定的数据源,也可以增加下面两个配置

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

当然,还可以增加其他的连接配置,大家可以自行搜索,这里讲的这几个绝对够大家基础使用了!!! 

 3、Spring中使用 StringRedisTemplate 这个类操作数据库

需要注意的是,操作redis的方法很多,除了 StringRedisTemplate 外,还有 Jedis 等等都可以操作redis,此处主要讲解以 StringRedisTemplate 的方式操作redis,读者若想了解其他操作redis的方式,也可以查询相关资料自行学习

首先,使用 @Autowired 注解将这个类注入该类 

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

  • 使用Jedis,是通过 Jedis 对象里的各种方法来操作 redis 的
  • 此处 Spring 中是通过 StringRedisTemplate 来操作redis的
  • 最原始提供的类是 RedisTemplate
  •  StringRedisTemplate 是 RedisTemplate 的子类,专门用来处理 文本数据的
  • 这个类提供的方法,相比于之前的 Jedis 中的各种方法,还是存在较大的差异的!!!

可以看到,此处就与 Jedis 不同了,又多了一层,主要是选择对应数据类型的类,然后再选操作方法

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

此处以 对value操作的相关方法举例:

可以看到,有get、set等多种不同方法的操作方法以满足我们的需求

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

4、对set 和 get 相关命令举例

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

    @GetMapping("/testString")
    @ResponseBody
    public String testString() {
        // 先清除之前的数据
        redisTemplate.execute((RedisConnection connection) -> {
            // execute 要求回调方法中必须写 return 语句,返回个东西
            // 这个回调返回的对象,就会作为 execute 本身的返回值
            connection.flushAll();
            return null;
        });
        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";
    }

5、Spring 中没有封装的命令

有些命令 Spring 没有封装,这时咱就要用 Redis 原生的命令进行操作了,通过 excute 方法就可以使用 Redis 原生的命令了

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

这里的 RedisConnection 就代表了 Redis 连接,对标 Jedis 对象

以 flushall 举例:

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

6、对 List 相关命令举例

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

    @GetMapping("/testList")
    @ResponseBody
    public String testList() {
        // 先清除之前的数据
        redisTemplate.execute((RedisConnection connection) -> {
            // execute 要求回调方法中必须写 return 语句,返回个东西
            // 这个回调返回的对象,就会作为 execute 本身的返回值
            connection.flushAll();
            return null;
        });

        redisTemplate.opsForList().leftPush("key", "111");
        redisTemplate.opsForList().leftPush("key", "222");
        redisTemplate.opsForList().leftPush("key", "333");

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

        return "OKList";
    }

7、对 Set 相关命令举例

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

    @GetMapping("/testSet")
    @ResponseBody
    public String testSet() {
        // 先清除之前的数据
        redisTemplate.execute((RedisConnection connection) -> {
            // execute 要求回调方法中必须写 return 语句,返回个东西
            // 这个回调返回的对象,就会作为 execute 本身的返回值
            connection.flushAll();
            return null;
        });

        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("exists:" + 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 "OKSet";
    }

8、对 Hash 相关命令操作

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

    @GetMapping("/testHash")
    @ResponseBody
    public String testHash() {
        // 先清除之前的数据
        redisTemplate.execute((RedisConnection connection) -> {
            // execute 要求回调方法中必须写 return 语句,返回个东西
            // 这个回调返回的对象,就会作为 execute 本身的返回值
            connection.flushAll();
            return null;
        });

        redisTemplate.opsForHash().put("key", "f1", "111");
        redisTemplate.opsForHash().put("key", "f2", "222");
        redisTemplate.opsForHash().put("key", "f3", "333");

        String value = (String) redisTemplate.opsForHash().get("key", "f1");
        System.out.println("value:" + value);

        Boolean exists = redisTemplate.opsForHash().hasKey("key", "f1");
        System.out.println("exist:" + exists);

        redisTemplate.opsForHash().delete("key", "f1", "f2");

        Long size = redisTemplate.opsForHash().size("key");
        System.out.println("size:" + size);

        return "OKHash";
    }

9、对 ZSet 进行操作

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

在 Spring 中操作 Redis,spring,redis,java,后端,spring boot,java-ee

    @GetMapping("/testZSet")
    @ResponseBody
    public String testZSet() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });

        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>> membersWithScore = redisTemplate.opsForZSet().rangeWithScores("key", 0 ,-1);
        System.out.println("membersWithScore:" + membersWithScore);

        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 "OKZSet";
    }

10、注:学习此篇博客方法

此篇博客上的代码为对某种数据类型整体操作的方法,是一连串的,并没有再拆开来细讲每一行代码的作用

大家可以使用gpt将每段我的代码发过去,让gpt生成更加详细的注释,这样学习事半功倍!!!

🧸前路漫漫,愿星光与您相伴!文章来源地址https://www.toymoban.com/news/detail-775025.html

到了这里,关于在 Spring 中操作 Redis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot 中的 Redis 的数据操作配置和使用

    Redis 是一种高性能的 NoSQL 数据库,它支持多种数据结构,包括字符串、哈希、列表、集合和有序集合。Redis 还提供了丰富的命令,可以对数据进行快速的 CRUD 操作。Spring Boot 是一个基于 Spring 的快速开发框架,它提供了对 Redis 的集成支持。在本文中,我们将介绍如何在 Spri

    2024年02月11日
    浏览(51)
  • 使用Spring Boot操作Redis、ES、MongoDB举例

    在Spring Boot应用程序中操作Redis通常涉及到使用Spring Data Redis,这是一个提供简便方法来操作Redis的库。以下是一个基本示例,演示如何在Spring Boot应用程序中集成和使用Redis: 步骤 1: 添加依赖项 首先,在你的 pom.xml 文件中添加Spring Data Redis的依赖项。 步骤 2: 配置Redis 在你的

    2024年01月25日
    浏览(40)
  • 在Spring Boot微服务使用RedisTemplate操作Redis集群

    记录 :442 场景 :在Spring Boot微服务使用RedisTemplate操作Redis集群的缓存和队列等数据类型。 版本 :JDK 1.8,Spring Boot 2.6.3,redis-6.2.5。 1.微服务中 配置Redis信息 1.1在pom.xml添加依赖 pom.xml文件: 解析:spring-boot-starter-data-redis和spring-boot版本保持一致。 1.2在application.yml中配置Redis集群

    2024年02月12日
    浏览(38)
  • 在Spring Boot微服务集成JedisCluster操作Redis集群

    记录 :448 场景 :在Spring Boot微服务使用JedisCluster操作Redis集群的缓存和队列等数据类型。 版本 :JDK 1.8,Spring Boot 2.6.3,redis-6.2.5,jedis-3.7.1。 1.微服务中 配置Redis信息 1.1在pom.xml添加依赖 pom.xml文件: 解析:在Spring Boot中默认集成jedis,使用无需加版本号,本例版本3.7.1是Spring 

    2024年02月09日
    浏览(49)
  • 在Spring Boot微服务使用ListOperations操作Redis集群List列表

    记录 :444 场景 :在Spring Boot微服务使用RedisTemplate的ListOperations操作Redis集群的List列表数据类型。 版本 :JDK 1.8,Spring Boot 2.6.3,redis-6.2.5。 1.微服务中 配置Redis信息 1.1在pom.xml添加依赖 pom.xml文件: 解析:spring-boot-starter-data-redis和spring-boot版本保持一致。 1.2在application.yml中配置

    2024年02月08日
    浏览(50)
  • 在Spring Boot微服务使用ZSetOperations操作Redis集群Zset(有序集合)

    记录 :447 场景 :在Spring Boot微服务使用RedisTemplate的ZSetOperations操作Redis集群的Zset(有序集合)数据类型。 版本 :JDK 1.8,Spring Boot 2.6.3,redis-6.2.5。 1.微服务中 配置Redis信息 1.1在pom.xml添加依赖 pom.xml文件: 解析:spring-boot-starter-data-redis和spring-boot版本保持一致。 1.2在application.ym

    2024年02月08日
    浏览(44)
  • 在Spring Boot微服务使用JedisCluster操作Redis集群String字符串

    记录 :449 场景 :在Spring Boot微服务使用JedisCluster操作Redis集群的String字符串数据类型。 版本 :JDK 1.8,Spring Boot 2.6.3,redis-6.2.5,jedis-3.7.1。 1.微服务中 配置Redis信息 1.1在pom.xml添加依赖 pom.xml文件: 解析:在Spring Boot中默认集成jedis,使用无需加版本号,本例版本3.7.1是Spring Bo

    2024年02月08日
    浏览(56)
  • Spring Data Redis:在Java中操作Redis

    目录 一、Spring Data Redis使用方式 1.1 介绍        1.2 配置  1.3 RedisTemplate 二、环境搭建  2.1 导入Spring Data Redis的maven坐标 2.2 配置Redis数据源   2.3 编写配置类,创建RedisTemplate对象   三、操作常见类型数据 3.1 操作字符串类型数据 3.2 操作哈希类型数据   3.3 操作列表类型

    2024年02月14日
    浏览(36)
  • Spring Data Redis 在Java中操作Redis

    目录 1. 添加依赖   2. 配置连接信息 3. 配置 RedisConnectionFactory 和 RedisTemplate 4.在Java中操作Redis 4.1. String 类型操作 4.2 List 类型操作 4.3 Set 类型操作 4.4 Hash类型操作 4.5 sorted set类型操作     Spring Data Redis 是 Spring Data 项目的一部分,它为 Java 应用程序提供了在 Spring 环境中与

    2024年01月18日
    浏览(68)
  • 【Redis】Spring/SpringBoot 操作 Redis Java客户端

    1.Jedis 2.Lettuce(主流) -Spring Data Redis 1.添加Redis 驱动依赖 2.设置Redis 连接信息 3.根据Redis API 操作Redis

    2024年02月13日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包