redis添加超时设置

redis添加参数的超时设置, 并且需要加锁,一开始是用

redisTemplate.opsForValue().setIfAbsent("key","value",1,TimeUnit.SECONDS);

结果发现这种方式直接会返回空指针错误

所以只能对方法加锁来解决加锁和超时的问题


import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;import java.util.concurrent.TimeUnit;@Component
@Slf4j
public class RedisUtils {@Autowiredprivate RedisTemplate<String, String> redisTemplate;public synchronized Boolean add( String redisKey, String value) {Boolean hasKey = addSub(redisKey, value);redisTemplate.expire(redisKey, 20, TimeUnit.SECONDS);return hasKey;}private Boolean addSub(String redisKey, String value) {Boolean hasKey = redisTemplate.hasKey(redisKey);if (!hasKey) {redisTemplate.opsForValue().set(redisKey, value);return true;}return false;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94787.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七牛云实践:我们如何用 AIGC 将产品开发从“人想图”变为“图选图”

在火热进行中的2025深圳国际文创展上&#xff0c;AI玩具、数字艺术等新兴品类无疑成为了焦点。表面的喧嚣之下&#xff0c;一个更深层次的变革正在悄然发生&#xff1a;驱动这些创新产品诞生的底层工作流&#xff0c;正在被AIGC技术深刻影响。 对于身处其中的产品经理、设计师和…

医疗器械企业如何做好多系统权限管理?解析PLM、ERP、MES权限角色

在医疗器械这个高度专业化、强监管的行业&#xff0c;数字化转型不仅意味着效率提升&#xff0c;更关乎合规与安全。当企业将业务流程从研发、生产、销售到售后&#xff0c;逐步迁移到ERP、PLM、MES、CRM等各类数字系统中时&#xff0c;一个关键而又常常被忽视的问题浮出水面&a…

蓝凌研究院《2025上市公司AI数智化转型白皮书》发布

上市公司是国民经济基本盘。目前中国境内上市公司达5420家&#xff0c;加上海外上市公司总数会更多。上市公司群体是国民经济的基本盘&#xff0c;其发展态势深刻映照着经济转型的脉搏与韧性。目前&#xff0c;中国在境内上市的公司总数达5420家&#xff0c;加上海外上市的公司…

OpenFOAM并行区域分解生成的polymesh文件解释

文章目录OpenFOAM里区域分解后polymesh文件解释&#x1f539; 1. What is polyMesh?&#x1f539; 2. Domain Decomposition Overview&#x1f539; 3. How decomposePar Works with polyMeshKey Output Files in processorX/polyMesh/:&#x1f539; 4. Types of Decompositi…

前端-npm和yarn的安装以及区别

目录 一.安装npm或yarn 安装Yarn &#x1f5a5;️ macOS / Linux 方式 1&#xff1a;通过 npm 安装&#xff08;最简单&#xff09; 方式 2&#xff1a;通过系统包管理器 &#x1fa9f; Windows 方法 1&#xff1a;用 npm 安装 方法 2&#xff1a;用 MSI 安装包 方法 3&#x…

通信原理实验之线性均衡器-迫零算法

通信原理实验之线性均衡器-迫零算法一、实验目的1、了解线性均衡器&#xff1b;2、了解迫零算法&#xff1b;3、熟悉眼图的使用。二、实验仪器1、序列码产生2、信号中继器3、加多径干扰4、迫零均衡5、信号分布图 6、眼图三、实验的理论基础1.线性均衡器&#xff1a;信道均衡技术…

把 AI 塞进「智能手环」——基于心率变异的零样本压力监测手环

标签&#xff1a;心率变异、压力监测、零样本、智能手环、TinyML、RISC-V、低功耗、边缘 AI ---- 1. 背景&#xff1a;为什么手环要「测压力」&#xff1f; 现代生活压力大&#xff0c;全球 30% 的人有焦虑症状&#xff0c;但传统手环&#xff1a; • 只能测心率&#xff0c;无…

fastapi项目细节和启动顺序

要搞清楚 FastAPI 项目启动的执行逻辑&#xff0c;需要先明确 “项目启动流程”“main 函数角色”“lifespan 作用”“导入语句执行时机” 这几个核心点的关系&#xff0c;下面逐一拆解&#xff1a;一、FastAPI 项目启动&#xff1a;先执行 “导入语句”&#xff0c;再执行 “m…

Fluent Bit系列:字符集转码测试(上)

#作者&#xff1a;程宏斌 文章目录gbk2utf8.lua 脚本说明在主配置中配置过滤器。如何在Linux系统中手动生成GBK日志&#xff1f;验证日志转码的准确性测试测试方案fluent-bit 3.0.2 转换测试这部分内容分为两个任务&#xff1a; 是验证 Lua 脚本是否能够将 GBK 编码的文本转换为…

ApiFox高并发测试用例

介绍 在开发中我们经常会测试高并发场景下的业务&#xff0c;下面来看看如何使用ApiFox编写一个高并发的测试用例 编写接口 第一步我们要编写测试的接口&#xff0c;并且建立一个用例 自动化测试 将上面的测试用例添加到自动化测试中&#xff0c;设置并发参数即可&#xff0c…

【MySQL数据库入门课程】开课啦!

&#x1f4e3; 【MySQL数据库入门课程】开课啦&#xff01; 课程名称&#xff1a;MySQL数据库实战入门&#xff08;零基础友好版&#xff09; 开课时间&#xff1a;2025年9月1日 授课方式&#xff1a;线上免费学习 实操练习 教师全程指导 适合人群&#xff1a;中职学校计算机…

面试中的并发编程题(下)

12、synchronized和Lock有什么区别语法层面synchronized是关键字&#xff0c;源码在jvm中&#xff0c;用c实现Lock是接口&#xff0c;源码又jdk提供&#xff0c;用Java实现使用synchronized时&#xff0c;退出同步代码块锁会自动释放&#xff0c;而使用Lock时&#xff0c;需要手…

Autosar之DCM模块

一、DCM介绍 DCM(Diagnostic Communication Manager)是AUTOSAR(汽车开放系统架构)基础软件BSW中服务层(Service Layer)的核心模块,其核心功能是为车辆电子控制单元(ECU)提供符合行业标准(如ISO 14229 UDS、ISO 15765 DoCAN、ISO 15031 OBD等)的诊断服务支持,为开发…

HFSS许可证与版本兼容性

在电磁仿真领域&#xff0c;HFSS&#xff08;High Frequency Structure Simulator&#xff09;软件因其卓越的性能和广泛的应用而备受赞誉。然而&#xff0c;为了确保用户能够充分利用HFSS的功能并获得流畅的仿真体验&#xff0c;许可证与版本兼容性成为了不可忽视的重要因素。…

Java有几种文件拷贝方式,哪一种效率最高?

文章目录一、Java文件拷贝的5种方式1. 传统IO流&#xff08;字节流/字符流&#xff09;手动拷贝2. NIO的FileChannel拷贝&#xff08;transferTo/transferFrom&#xff09;3. Java 7的Files.copy()工具类4. 缓冲流&#xff08;BufferedInputStream/BufferedOutputStream&#x…

【前端教程】JavaScript 基础总结

JavaScript 的三种使用方式 内部引入&#xff08;常用&#xff09;外部引入&#xff08;一个 js 文件可以被多个页面共同使用&#xff09;行内&#xff08;少用&#xff09; 区别&#xff1a; 内部引入只能够使用单页面外部引入可以应用到多个页面行内是直接在 HTML 标签内写&a…

学习-XMind 思维导图

XMind 是 2006 年诞生的思维导图软件&#xff0c;全球超 1 亿用户&#xff0c;能可视化呈现复杂信息&#xff0c;适用于学习、工作场景。它功能全&#xff08;支持多图表结构&#xff09;、易操作、颜值高、跨平台且安全&#xff0c;因此受青睐。其界面有菜单栏&#xff08;含各…

Ubuntu下MySQL、MongoDB与Redis:从安装到协同的完整指南

目录 一、MySQL&#xff1a;稳定可靠的关系型数据库 1.1 安装与配置 1.2 性能优化实战 二、MongoDB&#xff1a;灵活的文档数据库 2.1 安装与配置 2.2 性能优化策略 三、Redis&#xff1a;高性能内存数据库 3.1 安装与配置 3.2 高级应用场景 四、协同实战&#xff1a…

【传奇开心果系列】Flet框架带图标带交互动画的办公用品费用占比统计饼图自定义模板

Flet带图标带交互动画的办公用品费用占比统计饼图自定义模板 一、效果展示GIF动图 二、应用场景介绍 三、 特色说明 四、小结 五、源码下载地址 一、效果展示GIF动图 二、应用场景介绍 该应用是一个基于 Flet 框架开发的交互式办公用品费用占比统计饼图。适用于以下场景: 企业…

docker镜像在containerd为底座的k8s中使用

docker镜像和container镜像为什么不能直接共通 Docker 镜像和 containerd 镜像本质上格式兼容&#xff08;都遵循 OCI 镜像规范&#xff09;&#xff0c;但默认情况下 “不能互相识别”&#xff0c;核心原因是存储位置、命名空间和工具链的隔离&#xff0c;而非镜像格式本身的差…