当前位置: 首页 > news >正文

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

目录

Spring Boot中集成Redis

1.项目创建和环境配置

2.基本操作演示


Spring Boot中集成Redis

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

1.项目创建和环境配置

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

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

spring:data:redis:host: 127.0.0.1port: 8888

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

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:6379lettuce:cluster:refresh:adaptive: trueperiod: 2000

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

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

@RestController
public class MyController {@Autowiredprivate StringRedisTemplate redisTemplate;
}

2.基本操作演示

1.String类型操作演示:

@RestController
public class MyController {@Autowiredprivate 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类型操作演示:

    @GetMapping("/testList")@ResponseBodypublic 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类型操作演示:

    @GetMapping("/testSet")@ResponseBodypublic 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类型操作演示:

    @GetMapping("/testHashmap")@ResponseBodypublic 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类型操作演示:

    @GetMapping("/testZSet")@ResponseBodypublic 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类型的对象,通过这个对象的操作我们便可以得到如下结果: 

相关文章:

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

目录 Spring Boot中集成Redis 1.项目创建和环境配置 2.基本操作演示 Spring Boot中集成Redis Spring社区也自定义了一套Redis的客户端&#xff0c;与jedis的操作方式有所差异&#xff0c;Spring中把每个类型的操作都单独封装了起来。下面就让我来带大家了解如何在Spring Boot…...

【CSS】透明度 、过渡 、动画 、渐变

opacity 透明度transition 过渡animation 动画background 渐变 ( 线性渐变 \ 径向渐变 \ 锥形渐变 ) opacity 透明度 设置元素的透明度&#xff0c;会影响元素及其所有子元素的透明度&#xff0c;值范围&#xff1a;0&#xff08;完全透明&#xff09;到 1&#xff08;完全不透…...

尚硅谷vue3+TypeScript笔记大全

1. Vue3简介 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;n 经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者 官方发版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xff0c;最…...

New major version of npm available! 8.3.1 -> 10.8.3 报错

问题 npm install 安装新项目时&#xff0c;出现如下升级错误。 npm notice npm notice New major version of npm available! 8.3.1 -> 10.8.3 npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.3 npm notice Run npm install -g npm10.8.3 to upd…...

Python(七)- 文件操作

目录 文件操作 打开文件 读数据 写数据 关闭文件 文件读写实例 文件写 文件读 读数据类型 备份文件 os模块 目录的具体操作 文件操作 在Python中操作文件记录信息的步骤&#xff1a; &#xff08;1&#xff09;打开文件&#xff0c;或新建一个文件&#xff1b; o…...

Docker技术深度解析与实践案例

Docker技术深度解析与实践案例 在当今快速迭代的软件开发环境中&#xff0c;如何高效地打包、部署和管理应用成为了开发人员和运维团队面临的重大挑战。Docker&#xff0c;作为一种开源的应用容器引擎&#xff0c;凭借其轻量级、可移植性和高效性&#xff0c;迅速成为解决这些…...

llama_deploy

本文于 240924 翻译整理自: https://docs.llamaindex.ai/en/stable/module_guides/workflow/deployment/ 文章目录 一、关于 🦙`llama_deploy`🤖为什么使用 `llama_deploy`?等等,`llama-agents` 在哪里?二、入门1、安装2、高级部署3、部署核心系统4、部署工作流5、与部…...

平衡二叉搜索树插入的实现

前言 因为二叉搜索树在插入的时候最坏的情况可能会变成一条单一链表&#xff0c;从而使查找或者插入的时候消耗大量的时间。所以为了解决这一情况诞生了平衡二叉搜索树&#xff0c;其作用是为了减少二叉搜索树的整体高度&#xff0c;从而使查找插入删除的效率提高。 一、平衡二…...

ROS理论与实践学习笔记——2 ROS通信机制之通信机制实践

5.1 话题发布 需求描述&#xff1a;编码实现乌龟运动控制&#xff0c;让小乌龟做圆周运动。 实现分析&#xff1a; ①乌龟运动控制实现&#xff0c;关键节点有两个&#xff0c;一个是乌龟运动显示节点 turtlesim_node&#xff0c;另一个是控制节点&#xff0c;二者是订阅发布模…...

CDGA|数据治理:策略与价值的深度融合

在当今这个数据驱动的时代&#xff0c;企业数据治理的重要性日益凸显。数据不仅是企业的核心资产&#xff0c;更是驱动业务决策、优化运营流程、创新产品服务的关键力量。然而&#xff0c;要让数据治理真正发挥价值&#xff0c;企业需要采取一系列策略来确保数据的准确性、完整…...

49. 建模软件绘制3D场景(Blender)

这文章主要给大家科普一些三维模型创建、美术和程序员协作的相关问题。 三维建模软件作用 对于简单的立方体、球体等模型&#xff0c;你可以通过three.js的几何体相关API快速实现&#xff0c;不过复杂的模型&#xff0c;比如一辆轿车、一栋房子、一个仓库&#xff0c;一般需要…...

如何使用 DomCrawler 进行复杂的网页数据抓取?

在互联网时代&#xff0c;数据是宝贵的资源。无论是市场分析、客户洞察还是内容聚合&#xff0c;从网页中抓取数据都是一项关键技能。Symfony 的 DomCrawler 是一个强大的工具&#xff0c;可以帮助开发者从复杂的网页中提取所需的数据。本文将详细介绍如何使用 DomCrawler 进行…...

维修服务品牌小程序渠道客获

维修服务可覆盖家电电器、家具、手机电脑等多个细分类目&#xff0c;本地同城也有着不少目标用户且该行业客户有着一定粘性&#xff0c;比如服务完成递上一张名片/电话留存则有着较高复购率。 线上各行业便捷化程度提升&#xff0c;服务进店/上门都需要快捷完成&#xff0c;包…...

【全新课程】正点原子《基于GD32 ARM32单片机项目实战入门》培训课程上线!

正点原子《基于GD32 ARM32单片机项目实战入门》全新培训课程上线啦&#xff01;正点原子工程师手把手教你学&#xff01;彻底解决ARM32单片机项目入门难的问题&#xff01; 一、课程介绍 本课程专为ARM32单片机的入门学习者设计&#xff0c;涵盖了环境搭建、编程软件使用、模…...

Kafka系列之:安装使用kafka_exporter详细步骤

Kafka系列之:安装使用kafka_exporter详细步骤 一、kafka_exporter二、下载kafka_exporter三、理解Topic Metrics指标四、理解Consumer Groups Metrics指标五、启动kafka_exporter六、查看页面七、systemctl托管服务一、kafka_exporter kafka_exporter源码kafka_exporter下载页…...

Paddlets时间序列集成模型回测实战:MLPRegressor、NHiTSModel与RNNBlockRegressor

好的,我们继续深入理解代码的每个部分。以下是每个主要模块的详细解释: 1. 导入模块和库 import json import os import glob import pandas as pd from tqdm import tqdm from paddlets.datasets import TSDataset from paddlets.transform import StandardScaler from pa…...

【anki】显示 “连接超时,请更换网络后重试” 怎么办

文章目录 前言一、问题描述二、解决方案 前言 在 anki同步 时遇到的问题 一、问题描述 二、解决方案 从电信换为了移动热点&#xff0c;电脑手机都同步成功了...

第一批学习大模型的程序员,已经碾压同事了,薪资差距都甩出一条街了...

前言 随着人工智能技术的突飞猛进&#xff0c;AI大模型已成为引领未来的核心技术。从ChatGPT的横空出世到GPT-4o的震撼发布&#xff0c;AI技术正以前所未有的速度改变着我们的生活和工作方式。 在这场AI革命中&#xff0c;企业对AIGC人才的需求正以指数级增长。据《AIGC就业趋…...

Unity NetCode 客户端连接不上服务器,局域网模式 Failed to connect to server.

报错代码: Failed to connect to server. 报错截图&#xff1a; 解决办法: 服务端:绑定127.0.0.1和端口 客户端:写好对应服务端ip和端口 如何查看服务端所在局域网IP&#xff0c;192.xxx.xxx.xx,就不用教了吧。 注意这个钩&#xff0c;得点下&#xff0c;默认不勾选。 意…...

C++远端开发环境安装(centos7)

使用VMWare安装centos7 启用网卡设备 修改文件/etc/sysconfig/network-scripts/ifcfg-ens33中的ONBOOTyes 重启网络服务 systemctl restart network 配置yum仓库 直接将如下内容覆盖原有的/etc/yum.repos.d/CentOS-Base.repo文件 清理yum缓存 yum clean all 刷新yum yu…...

QT国际化实战:如何用tr和translate正确处理多语言(含中文乱码修复)

QT国际化实战&#xff1a;从源码到翻译的全流程解决方案 在全球化浪潮下&#xff0c;软件多语言支持已成为基础能力。作为跨平台开发框架的佼佼者&#xff0c;QT提供了完整的国际化工具链&#xff0c;但中文开发者常陷入编码混乱、翻译失效等困境。本文将系统梳理从源码规范到翻…...

Keepass2Android密码库完整性验证终极指南:如何确保你的密码安全无虞

Keepass2Android密码库完整性验证终极指南&#xff1a;如何确保你的密码安全无虞 【免费下载链接】keepass2android Password manager app for Android 项目地址: https://gitcode.com/gh_mirrors/ke/keepass2android 在当今数字化时代&#xff0c;密码管理器已成为保护…...

koanf命令行参数解析:高级POSIX兼容标志处理指南

koanf命令行参数解析&#xff1a;高级POSIX兼容标志处理指南 【免费下载链接】koanf Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. 项目地址:…...

百度网盘Mac版下载加速引擎:突破限速的完整优化指南

百度网盘Mac版下载加速引擎&#xff1a;突破限速的完整优化指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 当你面对100KB/s的下载速度&#xff0c…...

终极CPU稳定性测试指南:CoreCycler单核心轮询测试完全教程

终极CPU稳定性测试指南&#xff1a;CoreCycler单核心轮询测试完全教程 【免费下载链接】corecycler Script to test single core stability, e.g. for PBO & Curve Optimizer on AMD Ryzen or overclocking/undervolting on Intel processors 项目地址: https://gitcode.…...

从HBM到IEC61000-4-2:解码三大ESD模型在芯片与整机设计中的关键分野

1. 为什么你的芯片还是被静电打坏了&#xff1f; 很多硬件工程师都有过这样的困惑&#xff1a;明明选用的芯片数据手册上明确标注了"ESD防护等级2000V"&#xff0c;为什么产品到客户手里还是频繁出现静电损坏&#xff1f;上周我就遇到一个真实案例——某智能门锁厂商…...

从稀疏点云到动态环境:八叉树地图在视觉SLAM中的核心构建与应用

1. 八叉树地图&#xff1a;视觉SLAM的"三维记事本" 想象一下你第一次走进一个陌生商场时的场景&#xff1a;眼睛快速扫描扶梯位置&#xff0c;大脑自动标记洗手间标识&#xff0c;同时避开行走的人群——这个过程本质上就是人类版的SLAM&#xff08;同步定位与地图构…...

高效获取B站视频:downkyi开源工具全方位使用指南

高效获取B站视频&#xff1a;downkyi开源工具全方位使用指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09…...

教育博主私藏!PPT生成网站实用指南

作为一名教育博主&#xff0c;我深刻体会到制作 PPT 是教育工作者日常工作中不可或缺的一部分。借助合适的工具&#xff0c;能有效降低 PPT 制作门槛&#xff0c;提升演示内容的专业度和吸引力。今天&#xff0c;就给大家分享几款亲测好用的 PPT 生成网站&#xff0c;助力大家高…...

DevOps工具链集成:GitLab CI、Jenkins与Argo CD如何选?

DevOps工具链集成&#xff1a;GitLab CI、Jenkins与Argo CD如何选&#xff1f; 在DevOps实践中&#xff0c;工具链的选型直接影响交付效率与系统稳定性。GitLab CI、Jenkins和Argo CD作为主流工具&#xff0c;分别覆盖持续集成&#xff08;CI&#xff09;、持续交付&#xff0…...