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

redis client.ttl(key)

对应 Redis 的 TTL 命令:

bash

复制

下载

TTL key

使用示例

1. 基本用法

java

复制

下载

try (Jedis jedis = jedisPool.getResource()) {long ttl = jedis.ttl("user:1001:session");if (ttl > 0) {System.out.println("键将在 " + ttl + " 秒后过期");} else if (ttl == -1) {System.out.println("键存在,但未设置过期时间");} else if (ttl == -2) {System.out.println("键不存在或已过期");}
} catch (JedisException e) {System.err.println("Redis 操作失败: " + e.getMessage());
}
2. 结合 expire 使用

java

复制

下载

// 设置键并添加过期时间
jedis.setex("temp:data", 300, "value"); // 5分钟后过期// 检查剩余时间
long remainingTime = jedis.ttl("temp:data");
System.out.println("剩余时间: " + remainingTime + " 秒");

常见问题

Q1: 为什么返回 -2
  • 键可能从未存在,或已过期被 Redis 自动删除。

  • 注意:Redis 不区分“键不存在”和“键已过期”,统一返回 -2

Q2: 如何获取毫秒级精度的 TTL?

使用 pttl 方法:

java

复制

下载

long pttl = jedis.pttl("mykey"); // 返回毫秒
Q3: ttl 和 exists 的区别?
  • ttl 返回具体时间信息,能区分“永久键”和“不存在键”。

  • exists 只返回键是否存在(1 或 0),不关心过期时间。


关键注意事项

  1. 精度问题

    • ttl 返回秒级整数(向下取整)。

    • 例如,剩余时间 1.9 秒时返回 1

  2. 键过期时机
    Redis 的过期删除是惰性 + 定期的,ttl 返回值可能不是实时精确的。

  3. 性能
    ttl 是 O(1) 操作,对性能无显著影响。


最佳实践

java

复制

下载

// 安全获取 TTL(带异常处理)
try (Jedis jedis = jedisPool.getResource()) {long ttl = jedis.ttl(key);switch ((int) ttl) {case -2:// 键不存在逻辑break;case -1:// 键永久有效逻辑break;default:// 键即将过期逻辑if (ttl < 30) {jedis.expire(key, 60); // 自动续期}}
} catch (JedisException e) {// 处理网络或服务端错误
}

总结

场景返回值处理建议
键存在且有 TTL> 0根据业务判断是否续期。
键存在但无 TTL-1无需处理,或主动设置过期时间。
键不存在/已过期-2可能需要重新创建键。
Redis 服务异常抛异常捕获 JedisException 并重试。

相关文章:

  • 04-Java入门-Path环境变量的配置
  • lerna 8.x 详细教程
  • 【AI News | 20250423】每日AI进展
  • LLama Factory从入门到放弃
  • 非关系型数据库 八股文 Redis相关 缓存雪崩 击穿 穿透
  • java Nacos
  • 数据结构手撕--【栈和队列】
  • 初识分布式事务原理
  • 【敏矽微ME32G030系列】介绍、环境搭建、工程测试
  • 《重塑AI应用架构》系列: Serverless与MCP融合创新,构建AI应用全新智能中枢
  • LangChain4j(13)——RAG使用3
  • vscode+cmake高阶使用
  • SimVG论文精读
  • php基础
  • Nacos自动刷新配置源码解析
  • Ubuntu22.04新版本谷歌无法使用搜狗输入法/中文不显示
  • 组织级项目管理OPM
  • Spark 集群搭建:Standalone 模式详解
  • 天梯赛补题
  • Kafka 详解
  • 马上评丨从东方红一号到神二十,中国航天步履不停
  • 时隔七年,上合组织国家电影节再度在中国举办
  • 建行深圳市分行原副行长李华峰一审被判15年
  • 著名水声学家陆佶人逝世,曾参加我国第一代核潜艇主动声纳研制
  • 智飞生物一季度营收下滑79%,连续三个季度亏损,称业绩波动与行业整体趋势一致
  • 上海之旅相册②俄罗斯Chaika:客居六年,致上海的情书