Redis 中 TTL 的基本知识与禁用缓存键的实现策略(Java)
目录
- 前言
- 1. 基本知识
- 2. Java代码
前言
🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF
单纯学习Redis可以看我前言的Java基本知识路线!!
对于Java的基本知识推荐阅读:
- java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
- 【Java项目】实战CRUD的功能整理(持续更新)
在Java项目中,Redis配置了全局的TTL时间,后续想到可以通过设定单个key的TTL时间

1. 基本知识
先补充TTL的基本知识
TTL 是 Redis 中用于表示键的剩余生存时间的一个命令(Time To Live),通过命令 TTL key 可以查看某个键的剩余有效时间
返回值的含义如下:
正整数: 表示键的剩余生存时间(单位:秒)
例如 TTL key 返回 300,表示该键还有 300 秒过期-1: 表示键存在但没有设置过期时间,也就是说该键是永久有效的-2: 表示键不存在或者已经过期被删除

大致截图如下:
对于永久有效的键,需要手动删除,Redis 不会自动处理
TTL 是以秒为单位的,但可以通过 PTTL 命令获取毫秒级的剩余时间
2. Java代码
禁用单个 Redis 缓存键的实现
针对特定的缓存键(如 drag:cache:page),可以通过以下方式禁用:
策略: 为该键设置极短的 TTL,使其在创建后立即过期
if ("drag:cache:page".equals(name)) {if (cacheConfig != null) {cacheConfig = cacheConfig.entryTtl(Duration.ofMillis(1)); // 设置极短的过期时间}return super.createRedisCache(name, cacheConfig);
}
截图如下:

特别说明的是,此情况会失效:
Duration.ZERO 失败(TTL 为 -1):
在 Spring 的 RedisCacheConfiguration 中,Duration.ZERO 被解释为“永久有效”,导致 Redis 未对该键设置 TTL,因此返回 -1
~ Duration.ofMillis(1) 成功:
当 TTL 被设置为极短时间(如 1 毫秒),Redis 会将该键立即标记为即将过期。客户端在短时间后访问该键时,Redis 会将其删除,因此相当于“禁用”了该键
总的来说:
Duration.ZERO 通常被认为是不需要过期时间的值,在大多数框架中会导致缓存项被设置为永久有效
使用非常短的 TTL(如 Duration.ofMillis(1))是一种有效实现“禁用”的方法
上述代码是结合实战进行推广:
以下是Demo思路:
-
设置极短 TTL:
推荐方式,通过设置 Duration.ofMillis(1) 实现禁用
优点是直接在 Redis 中生效,且无需额外逻辑 -
手动删除键:缺点是需要额外的删除操作,增加复杂度
使用 RedisTemplate 明确删除:
RedisTemplate<String, Object> redisTemplate = // 获取 RedisTemplate 实例
redisTemplate.delete("drag:cache:page");
- 返回空缓存实现:
如果不希望在 Redis 中存储该键,可以直接返回一个空的 RedisCache 实现:
if ("drag:cache:page".equals(name)) {return new RedisCache(name, null, cacheConfig); // 返回空实现
}
相关文章:
Redis 中 TTL 的基本知识与禁用缓存键的实现策略(Java)
目录 前言1. 基本知识2. Java代码 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 单纯学习Redis可以看我前言的Java基本知识路线!! 对于Java的基本知识推荐阅读: java框架…...
【PyQt】图像处理系统
[toc]pyqt实现图像处理系统 图像处理系统 1.创建阴影去除ui文件 2.阴影去除代码 1.创建阴影去除ui文件 UI文件效果图: 1.1QT Desiger设置组件 1.两个Pushbutton按钮 2.两个label来显示图像 3.Text Browser来显示输出信息 1.2布局的设置 1.先不使用任何La…...
Ruby语言的循环实现
Ruby语言的循环实现深入探讨 在程序设计中,循环是一种常见的控制结构,用于重复执行某些代码块。不同的编程语言提供了不同类型的循环结构,以满足不同的需求。Ruby是一种灵活且易于使用的编程语言,其循环实现方式独具一格…...
javaEE安全开发 SQL预编译 Filter过滤器 Listener 监听器 访问控制
前言 java开发和其他开发的不同并且更安全就是因为他拥有简单的预编译机制 filter 过滤器 和 listener 监听器 这个很重要 就是 web应用监听器和过滤器是在 Servlet 之前的并且 我们的请求和响应都需要经过 两者的同意才可以通过 缺一不可 、 Listener 安全方面 监听器…...
一体机cell服务器更换内存步骤
一体机cell服务器更换内存步骤: #1、确认grdidisk状态 cellcli -e list griddisk attribute name,asmmodestatus,asmdeactivationoutcome #2、offline griddisk cellcli -e alter griddisk all inactive #3、确认全部offline后进行关机操作 shutdown -h now #4、开…...
Hadoop•用Web UI查看Hadoop状态词频统计
听说这里是目录哦 通过Web UI查看Hadoop运行状态🐇一、关闭防火墙二、在物理计算机添加集群的IP映射三、启动集群四、进入HDFS的Web UI 词频统计🦩1、准备文本数据2、在HDFS创建目录3、上传文件4、查看文件是否上传成功5、运行MapReduce程序6、查看MapRe…...
rhel7.9利用有网络环境打包ansible
RHEL7.9激活(可省略) # 注册 subscription-manager register --usernameyour_username --passwordyour_password --auto-attach # 查看订阅状态 subscription-manager list # 将 “enabled1” 改为 “enabled0” vi /etc/yum/pluginconf.d/subscription-manager.conf 配置阿…...
vim文本编辑器三种模式的转换关系
输入模式 ———— 末行模式 输入模式和末行模式不能相互转换。 输入模式 ———— 命令模式 输入模式可以通过点击esc进入命令模式。 命令模式可以通过点击i进入输入模式。 末行模式 ———— 命令模式 末行模式可以通过点击esc进入命令模式。 命令模式可以通过shift&…...
深度学习:大模型Decoding+MindSpore NLP分布式推理详解
大模型推理流程 1. 用户输入提示词(Prompt) 假设用户输入为:“从前,有一只小猫,它喜欢……” 我们的目标是让模型生成一段完整的故事。 2. 模型处理用户输入 2.1 分词:输入提示被分词为模型可以理解的…...
【JVM中的三色标记法是什么?】
JVM中的三色标记法是什么? 一、基本概念二、标记过程三、优势与问题四、漏标与多标的解决方案三色标记法(Tri-color Marking Algorithm)是Java虚拟机(JVM)中一种用于追踪对象存活状态的垃圾回收算法。 它基于William D. Hana和Mark S. McCulleghan在1976年提出的两色标记法…...
数据库服务体系结构
1. 数据库服务应用配置 服务进行配置有什么作用? 实现服务运行启动 实现某些功能 应用配置有三种方式? 利用编译安装进行配置 编写配置文件信息 ,.默认的配置文件: /etc/my.cnf 利用启动命令参数配置信息,mysqld_safe --skip-grant-tables --…...
vscode项目依赖问题
必读 一定要将前端下拉的项目备份一下,很容易运行导致依赖报错,重新下载 命令 使用幽灵分解器安装 pnpm install 替代 npm install 设置淘宝NPM镜像源 yarn config set registry https://registry.npmmirror.com 查看目前依赖包的版本 npm list ant-d…...
R数据分析:有调节的中介与有中介的调节的整体介绍
单独的有调节的中介或者有中介的调节好多同学还大概能看明白,但是两个东西一起说我发现大部分同学就懵逼了。今天我就尝试将两种方法一起讲讲,重点帮助大家厘清两种方法的异同。 先从整体上看下两者的概念: 有中介的调节首先落脚在调节,调节作用必须是显著的,并且这个调…...
RabbitMQ-消息可靠性以及延迟消息
目录 消息丢失 一、发送者的可靠性 1.1 生产者重试机制 1.2 生产者确认机制 1.3 实现生产者确认 (1)开启生产者确认 (2)定义ReturnCallback (3)定义ConfirmCallback 二、MQ的持久化 2.1 数据持久…...
Hack The Box-Starting Point系列Oopsie
一. 答案 With what kind of tool can intercept web traffic? (什么样的工具可以拦截Web流量?) proxyWhat is the path to the directory on the webserver that returns a login page?(Web服务器上返回登录页面的目录路径是什么?) /cdn-cgi/loginWhat can be modified …...
Linux运维篇-PAM安全模块配置
PAM是什么? PAM(可插入认证模块)是UNIX操作系统上一个实现模块化的身份验证的服务。当程序需要对用户进行身份验证时加载并执行。PAM文件通常位于/etc/pam.d目录中。 而Linux-PAM,是linux可插拔认证模块,是一套可定制…...
麒麟V10系统上安装Oracle
以下是在麒麟V10系统上安装Oracle数据库的详细步骤: 安装前准备 检查系统版本:使用uname -a、cat /etc/os-release等命令检查服务器是麒麟V10系统。 配置固定IP和本地yum源: 挂载麒麟V10的iso文件到/mnt目录,如mount -o loop Ky…...
项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(七)
文章目录 一、题库管理模块实现1、新增题目功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、题目列表功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询题目列表接口实现2.3.2 后端编辑试题接口实现2.4 效果展示二、代码下载一、题库管…...
Elasticsearch:Jira 连接器教程第二部分 - 6 个优化技巧
作者:来自 Elastic Gustavo Llermaly 将 Jira 连接到 Elasticsearch 后,我们现在将回顾最佳实践以升级此部署。 在本系列的第一部分中,我们配置了 Jira 连接器并将对象索引到 Elasticsearch 中。在第二部分中,我们将回顾一些最佳实…...
Vulnhub Earth靶机攻击实战(一)
导语 首先需要我们进入到https://vulnhub.com/entry/the-planets-earth,755/地址去获取Earth靶机,然后导入到VMware中,如下所示。 文章目录 导入虚拟机信息收集路径扫描破解密码反射Shell提权总结导入虚拟机 下载并导入虚拟机,如下所示。 信息收集 首先我们通过arp-sc…...
Qwen3智能字幕对齐系统在Qt跨平台桌面应用中的集成示范
Qwen3智能字幕对齐系统在Qt跨平台桌面应用中的集成示范 最近在做一个视频后期的小工具,需要给大量视频自动生成并同步字幕。手动对齐时间轴?那简直是噩梦。试过一些在线工具,要么收费不菲,要么对隐私有顾虑。于是,我就…...
彻底搞懂Type Challenges中的Chunk类型:从入门到精通
彻底搞懂Type Challenges中的Chunk类型:从入门到精通 【免费下载链接】type-challenges Collection of TypeScript type challenges with online judge 项目地址: https://gitcode.com/GitHub_Trending/ty/type-challenges Type Challenges是一个专注于TypeS…...
Java随机数生成与安全:探索与实践
Java随机数生成与安全:探索与实践 在Java编程的世界里,随机数生成是一个常见且重要的功能,它广泛应用于游戏开发、密码学、模拟实验等多个领域。然而,随机数的质量直接影响到应用程序的安全性和可靠性。本文将深入探讨Java中随机数…...
.NET 新特性概览与相关文章索引蜕
从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...
【2026年最新600套毕设项目分享】基于微信小程序的商品展示(30033)
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...
嵌入式摇杆驱动库:ADC滤波、死区补偿与方向判定
1. 项目概述Joystick 库是一个轻量级、硬件无关的嵌入式 C 语言函数集合,专为读取模拟摇杆(Analog Joystick)输入而设计。其核心目标并非提供完整驱动框架,而是封装底层 ADC 采样、去抖动、死区补偿、坐标映射与方向判定等共性逻辑…...
嵌入式C语言轻量级工具库apputils核心解析
1. 项目概述apputils是一个面向嵌入式系统开发的轻量级通用工具库,其设计哲学高度契合资源受限环境下的工程实践:不追求功能堆砌,而专注解决高频、细粒度、跨项目复用的底层共性问题。从项目 README 的表述——“this utils functions to sma…...
别再只玩VAE了!用CVAE玩点新花样:可控图像生成与风格迁移实战
解锁CVAE的创意潜能:从可控图像生成到风格迁移的艺术 在生成式AI的世界里,我们常常被那些能够凭空创造图像的模型所震撼。但当你真正开始使用基础的变分自编码器(VAE)时,可能会感到一丝沮丧——生成的图像虽然多样&…...
AI教育全面碾压传统教培:现状、挑战与转型路径
随着人工智能技术的爆发式发展,教育行业正经历一场前所未有的变革。AI教育培训正以惊人的速度重塑传统教育模式,从个性化学习到智能评估,从虚拟教师到自适应课程,AI正在全方位"碾压"传统教育培训体系。一、AI教育培训对…...
手机端访问 Web 服务器
手机端访问 Web 服务器 从手机端访问 S7-1200 Web 服务器,需要将 S7-1200 CPU 连接 Internet 网络或者本地无线接入点相连的网络。本文档是将 S7-1200 CPU 用网线直接连接到无线设备上,并将手机的 WIFI 信号连接到由无线设备创建的无线网络中。无线设备…...
