Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Redis入门到精通六】在Spring Boot中集成Redis(含配置和操作演示)

【Redis入门到精通六】在Spring Boot中集成Redis(含配置和操作演示)

作者头像
小皮侠
发布于 2024-09-25 01:18:54
发布于 2024-09-25 01:18:54
52800
代码可运行
举报
运行总次数:0
代码可运行

Spring Boot中集成Redis

Spring社区也自定义了一套Redis的客户端,与jedis的操作方式有所差异,Spring中把每个类型的操作都单独封装了起来。下面就让我来带大家了解如何在Spring Boot项目中使用Redis。

1.项目创建和环境配置

1.第一步创建Spring Boot项目,在创建项目时勾选NoSQL中的Spring Data Redis,然后等待项目加载。

2.第二步在application.yml中配置Redis服务地址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  data:
    redis:
      host: 127.0.0.1
      port: 8888

如果需要进行redis集群的配置可以使用下面的配置项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring:
  data:
    redis:
      cluster:
        nodes:
          - 172.30.0.101:6379
          - 172.30.0.102:6379
          - 172.30.0.103:6379
          - 172.30.0.104:6379
          - 172.30.0.105:6379
          - 172.30.0.106:6379
          - 172.30.0.107:6379
          - 172.30.0.108:6379
          - 172.30.0.109:6379
      lettuce:
        cluster:
          refresh:
          adaptive: true
          period: 2000

下⽅的 lettuce 系列配置,⽬的是为了⾃动刷新集群的拓扑结构。当集群中有节点宕机/加⼊新节点之后, 我们的代码能够⾃动感知到集群的变化。由于上述 ip 都是 docker 容器的 ip, 在 windows 主机上不能直接访问。因此需要把程序打成 jar 包, 部署到 linux 上,再通过 java -jar [jar包名] 的⽅式执⾏。

3.第三步引入StringRedisTemplate实例,便可以通过redisTemplate进行Redis的相关操作了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RestController
public class MyController {
    @Autowired
    private StringRedisTemplate redisTemplate;
}

2.基本操作演示

1.String类型操作演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RestController
public class MyController {
    @Autowired
    private StringRedisTemplate redisTemplate;

    @GetMapping("/testString")
    public String testString(){
        redisTemplate.opsForValue().set("key","value");
        String value = redisTemplate.opsForValue().get("key");
        System.out.println(value);

        redisTemplate.delete("key");
        return "OK";
    }
}

在上述代码中,我们通过调用redisTemplate的opsForValue方法可以得到一个专门操作Redis中String类型的对象,通过这个对象的操作我们便可以得到如下结果:

2.List类型操作演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @GetMapping("/testList")
    @ResponseBody
    public String testList() {
        redisTemplate.opsForList().leftPush("key", "a");
        redisTemplate.opsForList().leftPushAll("key", "b", "c", "d");
        List<String> values = redisTemplate.opsForList().range("key", 1, 2);
        System.out.println(values);
        redisTemplate.delete("key");
        return "OK";
    }

在上述代码中,我们通过调用redisTemplate的opsForList方法可以得到一个专门操作Redis中List类型的对象,通过这个对象的操作我们便可以得到如下结果:

3.Set类型操作演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @GetMapping("/testSet")
    @ResponseBody
    public String testSet() {
        redisTemplate.opsForSet().add("key", "aaa", "bbb", "ccc");
        boolean ok = redisTemplate.opsForSet().isMember("key", "aaa");
        System.out.println(ok);
        redisTemplate.opsForSet().remove("key", "aaa");
        long n = redisTemplate.opsForSet().size("key");
        System.out.println(n);
        redisTemplate.delete("key");
        return "OK";
    }

在上述代码中,我们通过调用redisTemplate的opsForSet方法可以得到一个专门操作Redis中Set类型的对象,通过这个对象的操作我们便可以得到如下结果:

4.Hash类型操作演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @GetMapping("/testHashmap")
    @ResponseBody
    public String testHashmap() {
        redisTemplate.opsForHash().put("key", "name", "zhangsan");
        String value = (String) redisTemplate.opsForHash().get("key", "name");
        System.out.println(value);
        redisTemplate.opsForHash().delete("key", "name");
        boolean ok = redisTemplate.opsForHash().hasKey("key", "name");
        System.out.println(ok);
        redisTemplate.delete("key");
        return "OK";
    }

在上述代码中,我们通过调用redisTemplate的opsForHash方法可以得到一个专门操作Redis中Hash类型的对象,通过这个对象的操作我们便可以得到如下结果:

5.Sorted Set类型操作演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @GetMapping("/testZSet")
    @ResponseBody
    public String testZSet() {
        redisTemplate.opsForZSet().add("key", "吕布", 100);
        redisTemplate.opsForZSet().add("key", "赵云", 98);
        redisTemplate.opsForZSet().add("key", "典⻙", 95);
        Set<String> values = redisTemplate.opsForZSet().range("key", 0, 2);
        System.out.println(values);
        long n = redisTemplate.opsForZSet().count("key", 95, 100);
        System.out.println(n);
        redisTemplate.delete("key");
        return "OK";
    }

在上述代码中,我们通过调用redisTemplate的opsForZSet方法可以得到一个专门操作Redis中Sorted Set类型的对象,通过这个对象的操作我们便可以得到如下结果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
编辑精选文章
换一批
【Spring Boot】020-Spring Boot整合Redis
spring boot 2.0.X之后,原来使用的jedis被替换成了lettuce;
訾博ZiBo
2025/01/06
1070
【Spring Boot】020-Spring Boot整合Redis
第三章 SpringBoot整合redis
查看RedisAutoConfiguration可以知道、封装了StringRedisTemplate给到我们使用,也导入了LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class 这两个都是底层操作redis的
RookieCyliner
2025/06/07
990
玩转 Spring Boot 集成篇(Redis)
Redis 应用场景?在实际项目研发中,经常把 Redis 用做热数据缓存,例如省份、地市、卡 bin 信息等;在 Web 项目里经常用作 Session 共享存储;还会用作短信验证码、Token 等有效期验证等场景。
一猿小讲
2022/02/25
3.8K0
玩转 Spring Boot 集成篇(Redis)
【redis】在 Spring中操作 Redis
前面使用 Jedis,是通过 Jedis 对象里的各种方法来操作 Redis 的。此处 Spring 中则是通过 StringRedisTemplate 来操作 Redis 的
椰椰椰耶
2025/03/19
1870
【redis】在 Spring中操作 Redis
Redis---整合SpringBoot篇
Redis6 1、引入redis相关依赖 2、application.properties配置redis配置 3.添加redis配置类 4.测试一下 RedisTemplate基本使用如下 ---- 1、引入redis相关依赖 <!-- redis的启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depende
大忽悠爱学习
2021/11/15
3130
SpringBoot3集成Redis
缓存在项目开发中,基本上是必选组件之一,Redis作为一个key-value存储系统,具备极高的数据读写效率,并且支持的数据类型比较丰富,在业务场景中的应用非常广泛;
知了一笑
2023/09/01
7290
SpringBoot3集成Redis
利用 Redis 实现每周热评,简直无敌
做每周热议,应该用缓存来做,如果直接查库的话,会对数据库造成压力。用缓存做的话,用Redis 来做缓存的话比较合适一点。
程序员皮皮林
2024/09/19
1750
利用 Redis 实现每周热评,简直无敌
15. Springboot集成Redis
Redis作为一款高性能的NoSQL数据库,在现代应用程序中扮演着越来越重要的角色。它常用于缓存、消息队列、分布式锁等场景。Spring Boot作为当下流行的Java开发框架,提供了非常便捷的方式集成Redis,使得开发者能够快速构建基于Redis的应用。本文将深入探讨Spring Boot集成Redis的方方面面,包括基础配置、高级特性、最佳实践等,并通过丰富的示例代码帮助读者更好地理解。
有一只柴犬
2024/09/18
2240
15. Springboot集成Redis
SpringBoot 配置Redis操作
这样本地环境就搭建起来啦。但是需要注意, Redis是默认只能本地访问 需要修改配置文件
憧憬博客
2020/07/21
1.3K0
redis+springboot_redis部署
Spring Boot Data(数据) Redis 中提供了RedisTemplate和StringRedisTemplate,其中StringRedisTemplate是RedisTemplate的子类,两个方法基本一致,不同之处主要体现在操作的数据类型不同,RedisTemplate中的两个泛型都是Object,意味着存储的key和value都可以是一个对象,而StringRedisTemplate的两个泛型都是String,意味着StringRedisTemplate的key和value都只能是字符串。
全栈程序员站长
2022/11/09
6111
redis+springboot_redis部署
SpringBoot整合Redis-RedisTemplate
Redis的RedisTemplate <!-- 引入 Redis 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> spring: ### 配置Redis # Redis数据库索引(默认为0) redis: database: 0 # Redis服
HUC思梦
2020/09/03
3.1K0
SpringBoot+SpringData-Redis 操作 Redis(CRUD) 模板代码
官网:http://projects.spring.io/spring-data-redis/ 这是spring整合的Redis框架十分简洁好用
用户9006224
2022/12/21
3420
SpringBoot+SpringData-Redis 操作 Redis(CRUD) 模板代码
玩转 Spring Boot 集成篇(Redis)(四)
Redis 应用场景?在实际项目研发中,经常把 Redis 用做热数据缓存,例如省份、地市、卡 bin 信息等;在 Web 项目里经常用作 Session 共享存储;还会用作短信验证码、Token 等有效期验证等场景。
botkenni
2022/09/23
4810
玩转 Spring Boot 集成篇(Redis)(四)
redisson集成springboot_spring整合redis详解
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用”没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
全栈程序员站长
2022/11/08
5830
Redis Java整合
Jedis 是 Redis 官方推荐的 Java 连接开发工具。要在 Java 开发中使用好 Redis 中间件,必须对 Jedis 熟悉才能写成漂亮的代码。
用户9615083
2022/12/25
8120
Redis Java整合
RedisTemplate常用方法总结
通过increment(K key, long delta)方法以增量方式存储long值(正值则自增,负值则自减)
一觉睡到小时候
2022/03/29
1.4K0
springboot11、redis
资源地址:redis服务(windows版)&amp;redis可视化工具.rar_asp.netcoreredis-.Net文档类资源-CSDN下载
红目香薰
2022/11/30
1910
springboot11、redis
从入门到精通,超强 RedisTemplate 方法详解!
要使用 RedisTemplate,必须要先引入它,下面是它的「maven依赖」。
业余草
2021/12/06
4.9K0
从入门到精通,超强 RedisTemplate 方法详解!
spring+redis的集成,redis做缓存
       Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。我们都知道,在日常的应用中,数据库瓶颈是最容易出现的。数据量太大和频繁的查询,由于磁盘IO性能的局限性,导致项目的性能越来越低。这时候,基于内存的缓存框架,就能解决我们很多问题。例如Memcache,Redis等。将一些频繁使用的数据放入缓存读取,大大降低了数据库的负担。提升了系统的性能。
别先生
2018/12/25
9970
Spring和Redis整合详解
Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库,缓存和消息代理。
品茗IT
2019/09/12
2K0
相关推荐
【Spring Boot】020-Spring Boot整合Redis
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验