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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
GEM技术导航系统开心版源码
源码下载地址:GEM 技术导航系统开心版源码.zip – 蓝奏云 (lanzouv.com)
素颜520
2023/04/19
5460
GEM技术导航系统开心版源码
Typecho主题Joe美化记录-星泽V社
最近一直在尝试新的主题,本站可能会更改外观,在此简单记录一下这段时间对Joe的美化,防止失忆,emm...也希望能帮助到刚接触Joe这个主题的站长们。
星泽V社
2022/04/25
2.9K0
Typecho主题Joe美化记录-星泽V社
价值88RMB的XG域名防红系统工具免费授权-星泽V社
五一假期如约而至,在此致敬还在一线抗疫的医务人员和志愿者,祝大家五一快乐,愿疫情早日退散! ???? 既然是节日,就gei大家送点礼物吧~ ???? XG域名防红系统,也算是广告发的比较多的一个域
星泽V社
2022/05/02
5.4K0
价值88RMB的XG域名防红系统工具免费授权-星泽V社
Typecho1.1版本下载,只为在用而够用 - 星泽V社
但是委婉来说,17年至今22年,中间有过很多优秀的主题和插件,随着1.2版本更新,导致了一些主题插件不能正常使用,而许多这类的插件,主题都不再更新,多多少少还是有点遗憾的
星泽V社
2022/05/18
6310
Typecho1.1版本下载,只为在用而够用 - 星泽V社
支付接口超多的发卡网源码-星泽V社
支付接口超多的发卡网源码,前台三套模板,有二十三个支付接口由于还得更新其他源码,就填充了一个商品,看起来UI不咋地。但我脑补了下,填充完商品后,应该还是比较好看的。 下载:
星泽V社
2022/08/26
9720
支付接口超多的发卡网源码-星泽V社
分享几个自用的typecho插件 - 星泽V社
今天莫名其妙百度收录2030个了,很迷很蒙b,昨天还是98个,今天这么多....有了解的大佬吗,为我解解惑~
星泽V社
2022/05/18
5K0
分享几个自用的typecho插件 - 星泽V社
一款简约漂亮的单双页版HTML主页源码- 星泽V社
【AyagawaSeirin】免费开源的单页个人主页纯静态源码、目前有两个主页版本:master单页版、double双页版、非常漂亮的单页HTML源码、喜欢的自行下载修改源码!
星泽V社
2022/05/02
2.3K0
一款简约漂亮的单双页版HTML主页源码- 星泽V社
本站同款Sitemap插件可主动推送百度收录-星泽V社
这个插件修改于 呆小萌的开源typecho-sitemap项目 ,这也是是我目前最满意的sitemap插件了,生成sitemap包含首页、独立页面、分类、标签、文章,并且支持推送百度搜索资源平台,目前仅支持普通收录推送(我没快速收录权限) 但不支持发布文章自动更新sitemap及自动推送,可能会影响文章发布速度所以没有做支持。
星泽V社
2022/05/01
3880
本站同款Sitemap插件可主动推送百度收录-星泽V社
默然后台二开的论坛社区APP源码-星泽V社
本来打算是基于DiscuzX或者DiscuzQ开发的,最初的想法是基于DZQ因为自带接口,
星泽V社
2022/09/26
1.3K0
默然后台二开的论坛社区APP源码-星泽V社
Uchinoko Maker,在线免费制作猫插图工具-星泽V社
Uchinoko Maker 是一个日本的网站,可以在线制作猫插图,支持各种猫咪体型、头部、眼睛、耳朵、嘴巴、尾巴等等的定制,制作完成支持 PNG 格式图片导出下载,并且还可以利用你刚刚制作的猫咪插图定制周边,例如衣服、手机壳等等,不过好像是日本的公司,国内不这可不可以,喜欢的可以去试试。
星泽V社
2022/08/26
3K0
Uchinoko Maker,在线免费制作猫插图工具-星泽V社
Joe主题RuleUser接管版文件-星泽V社
13号出了一个Joe主题RuleUser接管用心中心的教程,修改有点麻烦,我把修改完的文件打包出来,可以选择直接替换原有文件即可完成接管。
星泽V社
2022/05/18
5270
Joe主题RuleUser接管版文件-星泽V社
免费免挂个人支付系统-星泽V社
php版本7.0-7.2 支持微信扫码登录 支持QQ/微信/支付宝三网免输入 此款加入了App监控功能 稳定不掉线 支持后台运行
星泽V社
2022/08/26
2.3K0
免费免挂个人支付系统-星泽V社
Excel从入门到全能高手课程-星泽V社
基础章节建议认真学习,用不到的可以跳过不学;听不懂的可以多听几遍,多练习几遍,或者过段时间再学直到学会为止;如果你的Excel版本过低,可能课程涉及到的一些函数,功能和图表你找不到,是因为低版本还没有这些功能,建议有条件的话升级一下软件版本;学完后能游刃有余的处理各种表格问题,没有做不到,只有想不到。
星泽V社
2022/08/26
3700
Excel从入门到全能高手课程-星泽V社
分布式RPC系统框架实战教程-星泽V社
Dubbo+Zookeeper分布式RPC系统框架实战教程,课程内容从分布式系统技术知识点教学,Dubbo四大组件,Zookeeper,Dubbo源码解析,分布式系统技术图谱,分布式RPC系统框架全面解读,还附带了课程的资料和问答资料。
星泽V社
2022/08/26
3640
分布式RPC系统框架实战教程-星泽V社
2022新版域名防红系统源码-星泽V社
管理会员制度渠道,掌管多种服务,黑白名单管理邮箱配置生成提醒发送对接易支付进行交易,
星泽V社
2022/09/28
2.6K0
2022新版域名防红系统源码-星泽V社
JI卫云域名防红防封系统最新版源码免授权-星泽V社
卫云防红系统,双重跳转,更稳定,生成短链接均支持QQ.wx内部直接打开支持iOS。 1.拦截查询 域名检测使用官方接口,实时返回查询结果,并自动屏蔽报废的域名 2.API集成 完整API开发文档,支持任何网站对接,使您的网站能够更快地推广。 3.后备方案 QQ,wx防红方案超过三种,确保有后备方案可以替换
星泽V社
2022/08/26
3.5K0
JI卫云域名防红防封系统最新版源码免授权-星泽V社
ICP备案查询php网页源码-星泽V社
本文来源于星泽V社,未经允许禁止转载,原文链接:https://www.52xzv.cn/archives/1073.html
星泽V社
2022/08/26
2.6K0
ICP备案查询php网页源码-星泽V社
超实用!如何使用邮箱快速获取极验(Geetest)账户 - 星泽V社
网站安全一直是大家最关心的话题,使用人机验证可以有效的提高网站的安全性,防止网站接口被机器程序盗刷。比如被刷短信、被刷邮件、被刷评论等等。
星泽V社
2022/05/11
9270
超实用!如何使用邮箱快速获取极验(Geetest)账户 - 星泽V社
一款好看到极致的个人主页源码- 星泽V社
简单的小主页,主页的名称字体已经过压缩,若用名称以外的字母会变回默认字体 由于 CDN 缓存原因,查看最新效果可能需要 Ctrl + F5 强制刷新浏览器缓存 载入动画,站点简介,Hitokoto 一言,日期及时间,实时天气,时光进度条,音乐播放器,移动端适配
星泽V社
2022/05/01
9590
一款好看到极致的个人主页源码- 星泽V社
实用的网页加密源码,附四种模板风格-星泽V社
本文来源于星泽V社,未经允许禁止转载,原文链接:https://www.52xzv.cn/archives/1167.html
星泽V社
2022/09/28
8850
实用的网页加密源码,附四种模板风格-星泽V社
推荐阅读
相关推荐
GEM技术导航系统开心版源码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验