Redis Java 集成到 Spring Boot

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 的基本操作, 还是很容易可以通过方法名字理解用法的.
在这里插入图片描述

Read more

figma + claude + weavy AI :从会用到用好

figma + claude + weavy AI :从会用到用好

Google ai studio + figma + claude.ai + cosmos + Design with Weavy AI 这套头脑风暴工具看完后,你一定可从其中悟出独特、见解,并为之惊讶。我们不需要自己动手去建房子,我们可以借助不同的工具,去找找灵感,为自己创造东西,自然而然的知道自己的感受,和想要的感受。 1 / GoogleAIStudio 端到端 制定原型 GoogleAIStudio非常好,因为它能端到端完成。然后我发现Gemini在界面设计上真的很厉害!(本次以开发一款音乐日记讲述全流程)。 2 / claude.ai 制定品牌指南 (生成品牌指南 guidelines ) 先谈谈设计思想。 就像电影和电视剧有开头、中间、结尾一样,我们现在还不太在意中间和结尾。用户他们不应该觉得我们在抢他们的注意力,或者强迫他们。用户更不愿意看到一堆广告和各种乱七八糟的东西。 很多人,觉得品牌指南听起来很像企业用语,但我认为如claude、gemin这些头脑风暴工具一定能帮助我们找到想要的点。利用claude制定品牌指南,自己想要什么,我们可以看看这个,

By Ne0inhk
2026最新保姆级教程:手把手教你零基础安装与配置本地 AI 智能体 OpenClaw

2026最新保姆级教程:手把手教你零基础安装与配置本地 AI 智能体 OpenClaw

文章目录 * 前言 * 一、下载并安装 OpenClaw * 二、启动配置向导与绑定 AI 大脑 * 1. 启动向导 * 2. 确认账户类型 * 3. 选择快速入门模式 * 4. 选择大模型 (AI 大脑) * 5. 选择 API 接口区域 * 6. 填入你的专属 API Key * 三、连接通讯渠道 (Telegram) * 1. 选择 Telegram * 2. 绑定机器人的 Token * 第四步:安装扩展插件与重启服务 * 1. 技能插件 (Skills) * 2. 附加功能 (Hooks) * 3. 重启并应用配置 * 第五步:设备安全授权与最终测试 (见证奇迹!) * 1.

By Ne0inhk
今日AI榜单速览(GitHub Trending AI Top3)

今日AI榜单速览(GitHub Trending AI Top3)

🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》《Python》《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更简单,让重复的工作自动化 今日AI热榜 * 1 1 今日榜单速览(GitHub Trending AI Top3) * 2 2 ruvnet / RuView:WiFi DensePose 的“无线透视”路线 * 2 我的一句话总结 * 2 为什么今天它能冲到第一? * 2 图:它的可视化界面长这样(很直观) * 2 我如何最快验证(不折腾工具链) * 3 3 K-Dense-AI / claude-scientific-skills:给

By Ne0inhk
【智体OS】ibbot智体机灵 V1.0:你的手机AI超脑,一句话开启智体时代————终将打败OpenClaw的国产开源项目

【智体OS】ibbot智体机灵 V1.0:你的手机AI超脑,一句话开启智体时代————终将打败OpenClaw的国产开源项目

【智体OS】ibbot智体机灵 V1.0:你的手机AI超脑,一句话开启智体时代————终将打败OpenClaw的国产开源项目 发布日期:2026年2月12日 核心定位: 基于dtns.os V5.0的下一代移动端AI智能体平台 🚀 产品宣言:告别笨重,拥抱手机里的AI工作站 还在为OpenClaw这类方案需要额外购置硬件、部署复杂而头疼吗?时代变了!ibbot智体机灵将强大的AI智能体引擎直接塞进你的安卓手机,实现 “零硬件成本、开机即用、揣兜就走” 的终极生产力形态。我们不是另一个AI工具,而是你口袋里的 “AI副驾” 和 “赚钱工作站”。 ✨ 核心亮点:为什么ibbot是颠覆者? 1. 极致轻量与便携 * 部署平台:你正在使用的安卓手机/平板。 * 硬件成本:¥0,充分利用现有设备,无需Mac mini或云服务器。 * 便携性:你的手机就是完整的工作站,灵感随时捕捉,任务随地处理。 2. 一句话创建万物 基于dtns.

By Ne0inhk