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

在Spring Boot微服务使用Jedis操作Redis List列表

记录:408

场景:在Spring Boot微服务使用Jedis操作Redis List列表。

版本:JDK 1.8,Spring Boot 2.6.3,redis-6.2.5,jedis-3.7.1。

1.微服务中配置Redis信息

1.1在application.yml中Jedis配置信息

hub:example:redis:jedis:host: 192.168.19.203port: 28001password: 12345678timeout: 60000

1.2使用ConfigurationProperties加载Jedis配置

Spring Boot微服务在启动时,自动注解机制会读取application.yml的Jedis相关注入到JedisConnectProperties 对象。

在Spring环境中,注入JedisConnectProperties对象,就能获取到Redis相关配置信息。也就是Jedis客户端必须的参数。

定义JedisConnectProperties 类,扫描yml中的hub.example.redis.jedis配置。

@Component
@ConfigurationProperties(prefix="hub.example.redis.jedis")
public class JedisConnectProperties {private String host;private int port;private int timeout;private String password;public String getHost() {return host;}public void setHost(String host) {this.host = host;}public int getPort() {return port;}public void setPort(int port) {this.port = port;}public int getTimeout() {return timeout;}public void setTimeout(int timeout) {this.timeout = timeout;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

1.3在pom.xml添加依赖

在Spring Boot中默认集成jedis,使用时无需加版本号,本例版本3.7.1是Spring Boot 2.6.3对应的版本。

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.7.1</version>
</dependency>

2.微服务中配置Jedis

2.1配置Jedis

@Configuration
public class JedisConfig {@Autowiredprivate JedisConnectProperties jedisProperties;@Bean("jedisPoolConfig")public JedisPoolConfig jedisPoolConfig() {JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxTotal(30);jedisPoolConfig.setMaxIdle(30);jedisPoolConfig.setMinIdle(1);jedisPoolConfig.setNumTestsPerEvictionRun(-1);jedisPoolConfig.setTestOnBorrow(true);jedisPoolConfig.setTestOnReturn(false);jedisPoolConfig.setBlockWhenExhausted(false);return jedisPoolConfig;}@Bean("jedisPool")public JedisPool jedisPool(JedisPoolConfig jedisPoolConfig) {JedisPool jedisPool = new JedisPool(jedisPoolConfig,jedisProperties.getHost(),jedisProperties.getPort(),jedisProperties.getTimeout(),jedisProperties.getPassword());return jedisPool;}
}

2.2解析

在配置Jedis后,在Spring环境中可以使用@Autowired自动注入jedisPool,从Jedis资源池中获取Jedis就可以操作Redis了。

3.使用Jedis操作Redis List列表

3.1简要说明

使用Jedis操作Redis List列表,常用操作:增、查、删、设置超时等。

3.2操作示例

@RestController
@RequestMapping("/hub/example/loadJedis")
@Slf4j
public class LoadJedisController {// 注入JedisPool资源池@Autowiredprivate JedisPool jedisPool;/*** 在Spring Boot微服务使用ListOperations操作Redis List列表*/@GetMapping("/jedis03-01")public Object loadData03_01() {log.info("Jedis操作开始...");// 1.获取Jedis对象Jedis jedis = jedisPool.getResource();// 2.增// 2.1写入一条数据到队列,队列名称,队列值jedis.rpush("CityInfo:suzhou03:01", "苏州-姑苏");jedis.lpush("CityInfo:suzhou03:02", "苏州-工业园区");// 2.1写入批量数据到队列jedis.rpush("CityInfo:suzhou03:01", "苏州-工业园区", "苏州-昆山", "苏州-相城", "苏州-吴江");// 3.查// 3.1从队列中取值,队列值取出后,队列中就没值了String city01 = jedis.lpop("CityInfo:suzhou03:01");String city02 = jedis.rpop("CityInfo:suzhou03:01");// 3.2查询队列长度Long len = jedis.llen("CityInfo:suzhou03:01");// 3.3获取指定范围的值,不会修改队列值List<String> list = jedis.lrange("CityInfo:suzhou03:01", 2, 4);// 4.删jedis.del("CityInfo:suzhou03:01");// 5.设置超时jedis.expire("CityInfo:suzhou03:02", 600L);// 6.释放Jedis对象jedis.close();log.info("Jedis操作结束...");return "执行成功";}
}

3.3测试验证

使用Postman测试。

请求RUL:http://127.0.0.1:18205/hub-205-redis/hub/example/loadJedis/jedis03-01

以上,感谢。

2023年4月15日

相关文章:

在Spring Boot微服务使用Jedis操作Redis List列表

记录&#xff1a;408 场景&#xff1a;在Spring Boot微服务使用Jedis操作Redis List列表。 版本&#xff1a;JDK 1.8,Spring Boot 2.6.3,redis-6.2.5,jedis-3.7.1。 1.微服务中配置Redis信息 1.1在application.yml中Jedis配置信息 hub:example:redis:jedis:host: 192.168.…...

springboot + vue 部署 阿里云云服务器 ECS

安装所需文件 安装mysql5.7 下载MySQL的yum源配置 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装MySQL的yum源 yum -y install mysql57-community-release-el7-11.noarch.rpm使用yum方式安装MySQL5.7&#xff08;下载需要点时间&#xf…...

mysql 日期 计算 时间差 天数差

mysql计算两个日期的时间差 第一种&#xff1a;TIMESTAMPDIFF函数 三个参数。第一个参数是比较的类型&#xff1a;FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER、YEAR几种类型。第二、三参数是时间&#xff0c;后减前: SELECT TIMESTAMPDIFF(DAY,20…...

不用网闸、FTP的话 如何实现内外网数据交换?

网络隔离已然成为很多企业首选的数据保护方式&#xff0c;即使是内部人员之间&#xff0c;也是不能随意的发送敏感文件的。但是&#xff0c;文件的流转交互&#xff0c;又是不可避免的&#xff0c;网络隔离保障了企业网络安全&#xff0c;但在具体实践中仍需解决各隔离网间的数…...

探寻Spring MVC的奥秘:内部组件与工作流程详解

Spring MVC是一个基于MVC架构模式的Web框架&#xff0c;是Spring框架的一个组件。它提供了一套Web应用程序开发的全面解决方案&#xff0c;包括从请求到响应的处理流程、处理请求的控制器、视图解析器、国际化和验证器等。 在这篇文章中&#xff0c;我们将介绍Spring MVC框架的…...

eclipse svn ClassNotFoundException: javassist.ClassPool

eclipse 五月 10, 2023 9:26:49 上午 org.apache.catalina.core.StandardContext filterStart 严重: Exception starting filter struts2 java.lang.reflect.InvocationTargetException - Class: com.opensymphony.xwork2.inject.ContainerImpl M e t h o d I n j e c t o r F…...

广度优先遍历搜索迷宫最短路径

思路分析 由于广度是扩散逐层的方式遍历&#xff0c;相当于是多条路同时跑&#xff0c;最后先到终点就是最短路径了。 广度优先搜索主要使用队列来进行处理 路径用一个单独的vector存储&#xff0c;每一个点的坐标由二维转为一维&#xff0c;如(2, 3)存储在vector中下标为2*…...

分布式计算基础知识

分布式系统的概念 分布式系统是由多个独立计算机组成的系统&#xff0c;这些计算机通过网络进行通信和协作&#xff0c;共同完成一个任务。分布式系统的特点是具有高可用性、可扩展性和容错性。 在分布式系统中&#xff0c;每个计算机节点都可以独立地执行任务&#xff0c;同…...

Mybatis方式完成CRUD操作

Mybatis方式完成CRUD操作 文章目录 Mybatis方式完成CRUD操作1、java以Mybatis方式操作DB1.1、配置数据源-创建 resources/mybatis-config.xml1.2、创建java bean-Monster1.3、配置Mapper接口声明方法1.4、配置xxMapper&#xff0c;完成SQL配置,实现CRUD操作1.5、Test测试 2、需…...

css背景 background的属性作用和值

当我们在 HTML 中设置背景时&#xff0c;可以使用 background 属性。这个属性有多个值&#xff0c;可以使用不同的值来设置背景图片、背景颜色、背景位置、背景重复等等。以下是用表格列出的常见的 background 属性的值及其作用&#xff1a; 属性值描述background-color设置背…...

六大行文化特色知识(上)

中国六大银行都是综合性大型商业银行&#xff0c;业务涵盖面广泛且多元&#xff0c;代表着中国金融界最雄厚的资本和实力&#xff0c;这也是为什么很多毕业生想进国有行的原因&#xff0c;今天小编就带大家来了解一下关于六大行的特色知识&#xff0c;从如信银行考试中心平台了…...

匿名对象的特性和使用场景你知道吗?

目录 一、匿名对象的概念 二、单参数和多参数构造场景的匿名对象 ①只有一个参数的构造函数 ②多个参数的构造函数 三、使用匿名对象作为函数的参数的缺省值 四、只为调用类中的一个函数时 五、匿名对象的特性 1、匿名对象的生命周期只有一行 2、匿名对象具有常性 3、当匿…...

企业应该如何做到数字化转型成功?

01 成长型企业数字化转型的意义 成长型企业想要实现数字化转型&#xff0c;那么我们需要先弄明白&#xff0c;对于成长型企业而言&#xff0c;数字化转型到底具有什么意义&#xff1f;希望实现哪些目标&#xff1f; 可以归结为以下四点&#xff1a; 提升企业的生产力和效率&…...

PBDB Data Service:Bibliographic references for fossil collections(采集记录参考书目)

Bibliographic references for fossil collections&#xff08;采集记录参考书目&#xff09; 描述用法参数以下参数可用于检索与通过各种条件选择的集合关联的引用您可以使用以下参数根据书目参考文献的属性筛选结果集以下参数也可用于筛选选择以下参数可用于根据所选匹配项的…...

浅析图形验证码安全

0x01 前言 验证码的定义&#xff1a; 验证码&#xff08;CAPTCHA&#xff09;是“Completely Automated Public Turing test to tell Computers and Humans Apart”&#xff08;全自动区分计算机和人类的图灵测试&#xff09;的缩写&#xff0c;是一种区分用户是计算机还是人的…...

论文笔记:基于手机位置信息的地图匹配算法

2015计算机应用 整体思路和论文笔记&#xff1a;Hidden Markov Map MatchingThrough Noise and Sparseness_UQI-LIUWJ的博客-CSDN博客 很像&#xff0c;也是应用HMM进行地图匹配 HMMM本文 状态转移矩阵 观测概率矩阵 正态分布均值都是0&#xff0c;唯一不同的是S…...

因果推断系列16-面板数据与固定效应

因果推断系列16-面板数据与固定效应 1.平行趋势2.未观测变量的控制3.固定效应4.固定效应可视化5.时间效应小结加载第三方包 import warnings warnings.filterwarnings(ignore)import pandas as pd import numpy as np from matplotlib import style from matplotlib import...

第三十三章 弹性池塘2(弹城少年歌词)

熟悉的K26&#xff0c;熟悉的漉菽香味&#xff0c;熟悉的絮絮叨叨。 为什么坎迪总有那么多话想说&#xff0c;就算恢复正常&#xff0c;自己应该也找不出如滔滔江水连绵不断的语词洪流吧。 不&#xff0c;不是词汇量的问题。 当你习惯于将金玉良言与废屁空套话区分开来时&#…...

PMP之预测部分

引论 什么是项目 项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目管理是把事办成的方法论&#xff0c;万物皆可项目。 项目的基本要素 项目&#xff08;独特性、临时性&#xff09;、驱动变更、启动背景、创造商业价值。 组织级项目管理&#xff08;OPM&am…...

Node.js 异步流控制

目录 1、简介 2、状态管理 3、控制流 3.1、串联 3.2、完全并行 3.3、有限并行 1、简介 在其核心&#xff0c;JavaScript被设计为在“主”线程上是非阻塞的&#xff0c;这是呈现视图的位置。你可以想象这在浏览器中的重要性。例如&#xff0c;当主线程被阻塞时&#xff0…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...