如何使Redis中的Keys失效
系列教程导航
- 如何在 Ubuntu 18.04 上安装和保护 Redis
- 如何连接到 Redis 数据库
- 如何管理 Redis 数据库和 Keys
- 如何在 Redis 中管理副本和客户端
- 如何在 Redis 中管理字符串
- 如何在 Redis 中管理 List
- 如何在 Redis 中管理 Hashes
- 如何在 Redis 中管理 Sets
- 如何在 Redis 中管理 Sorted Sets
- 如何在 Redis 中运行事务
- 如何使 Redis 中的 Key 失效
- 如何解决 Redis 中的故障
- 如何从命令行更改 Redis 的配置
- Redis 数据类型简介
介绍
Redis 是一个开源的内存中键值数据存储系统。默认情况下,Redis 的键(Key)是持久化的,这意味着除非手动删除,否则 Redis 服务器将一直存储它们。但在某些场景下,您可能希望键在设定的一段时间后自动删除,即让键具有可变性(Volatile)。本教程将说明如何设置键的过期时间、如何检查键的剩余存活时间,以及如何取消键的过期设置。
如何使用本指南
本指南以备有完整示例的备忘单形式编写。您可以直接跳转至与您任务相关的任何部分。
本指南中显示的命令已在运行 Redis 4.0.9 版本的 Ubuntu 18.04 服务器上进行了测试。要设置类似的环境,您可以按照我们的指南 如何在 Ubuntu 18.04 上安装和保护 Redis 的 步骤 1 进行操作。我们将通过使用 redis-cli(Redis 命令行界面)运行命令来演示其行为。
请注意,如果您使用其他 Redis 客户端(例如 Redli),某些命令的确切输出可能会有所不同。
另外,您也可以使用托管的 Redis 数据库实例来测试这些命令。但请注意,根据数据库提供者允许的控制级别,本指南中的某些命令可能无法按所述方式工作。要配置 DigitalOcean 托管数据库,请遵循我们的 托管数据库产品文档。然后,您必须 安装 Redli 或 设置 TLS 隧道 才能通过 TLS 连接到托管数据库。
设置键的过期时间
您可以使用 expire 命令设置现有键的过期时间。该命令接受键名和直到过期的秒数作为参数。为了证明这一点,请运行以下两个命令。第一条命令创建一个名为 key_melon 的字符串键,值为 "cantaloupe";第二条命令将其设置为在 450 秒后超时:
set key_melon "cantaloupe"
expire key_melon 450如果成功设置了超时,expire 命令将返回 (integer) 1。如果设置超时失败(例如键不存在),它将返回 (integer) 0。
或者,您可以使用 expireat 命令将键设置为在特定的时间点过期。它使用 Unix 时间戳 作为参数,而不是到期前的秒数。Unix 时间戳是自 _Unix 纪元_(即 1970 年 1 月 1 日 UTC 00:00:00)以来的秒数。可以使用许多在线工具来查找特定日期和时间的 Unix 时间戳,例如 EpochConverter 或 UnixTimestamp.com。
例如,要设置 key_melon 为在 2025 年 5 月 1 日格林尼治标准时间晚上 8:30 到期(对应的 Unix 时间戳为 1746131400),可以使用以下命令:
expireat key_melon 1746131400请注意,如果传递给 expireat 的时间戳已经发生,它将立即删除该键。
检查键的剩余过期时间
在任何时候,您都可以检查键距离过期还有多少时间(以秒为单位)。可以使用 ttl 命令,其全称为 "Time To Live":
ttl key_melon输出示例:
(integer) 433有关更详细的信息,可以运行 pttl 命令,它将返回直到键过期的时间(以毫秒为单位):
pttl key_melon输出示例:
(integer) 431506如果键尚未设置为过期,ttl 和 pttl 都将返回 (integer) -1。如果键不存在,两者都将返回 (integer) -2。
使键持久化
如果键已设置为过期,任何覆盖键内容的命令(例如 set 或 getset)都会清除键的超时值。若要手动清除键的超时设置使其永久保存,请使用 persist 命令:
persist key_melon如果成功完成,persist 命令将返回 (integer) 1,表明该键将不再过期。
结论
本指南详细介绍了用于在 Redis 中操作和检查键持久性的许多命令。如果您想在本指南中概述其他相关的命令、参数或过程,请在下面的评论中提出疑问或提出建议。
有关 Redis 命令的更多信息,请参阅关于 如何管理 Redis 数据库的 系列教程。
说明:本文内容基于 Redis 4.0.9 版本及 Ubuntu 18.04 环境测试。不同版本的 Redis 可能在命令行为或输出格式上略有差异,请以官方文档为准。
版权声明:本文为原创文章,版权归 戴老师的博客 所有,转载请联系博主获得授权。
本文地址:https://1diff.fun/archives/ru-he-shi-redis-zhong-de-keys-shi-xiao.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。