如何在 Redis 中过期键

介绍

Redis是一个开源的内存密钥值数据存储库。 Redis 密钥默认为 persistent,这意味着 Redis 服务器将继续存储它们,除非它们被手动删除。

本教程解释了如何设置密钥到期,检查密钥到期剩余时间,并取消密钥到期设置。

如何使用此指南

这个指南是写成一个骗局的表,包含自含的示例,我们鼓励你跳到任何与你试图完成的任务相关的部分。

在本指南中显示的命令在运行 Redis 版本 6.0.1 版本的 Ubuntu 22.04 服务器上进行了测试。 要设置类似的环境,您可以遵循我们指南中的 Step 1How To Install and Secure Redis on Ubuntu 22.04 上进行测试。 我们将通过使用 Redis 命令行接口的 redis-cli 来演示这些命令的行为。 如果您使用不同的 Redis 接口 - 例如 - 某些命令的准确输出可能会有所不同。

或者,您可以提供一个受管理的 Redis 数据库实例来测试这些命令,但取决于数据库提供商允许的控制水平,本指南中的一些命令可能无法按描述的方式工作。 要提供 DigitalOcean 受管理数据库,请遵循我们的 管理数据库产品文档

设置密钥到期

您可以使用到期命令为现有密钥设置到期时间,该命令将密钥的名称和到期时的秒数作为参数。 要证明这一点,请运行以下两个命令。

1set key_melon "cantaloupe"

第二个命令设置它在450秒后到期:

1expire key_melon 450

如果成功设置了时隔,则到期命令将返回(整数) 1

或者,您可以使用 expireat命令将密钥设置为到期时间的特定时刻,而不是到期前的秒数,它需要一个 Unix timestamp作为一个论点。 Unix timestamp是自1970年1月1日 Unix epoch,或 00:00:00 UTC 以来的秒数。

例如,要将 key_melon 设置为 2025 年 5 月 1 日 GMT 8:30 时到期(由 Unix 时刻印 1746131400 表示),您可以使用以下命令:

1expireat key_melon 1746131400

请注意,如果您转移到到期的时刻印已经发生,它将立即删除密钥。

检查一个密钥到期多久

當您設定一個密钥到期時,您可以使用「ttl」來檢查到期時間的剩餘時間(在秒內),這表示「t time ** t** o ** l** ive」:

1ttl key_melon
1[secondary_label Output]
2(integer) 79247184

若要获取更详细的信息,您可以运行pttl,而这将返回时间,直到密钥在毫秒内到期:

1pttl key_melon
1[secondary_label Output]
2(integer) 79247156730

ttlpttl都将返回(整数) -1,如果密钥未设定到期,如果密钥不存在,则返回(整数) -2

持久的钥匙

如果一个密钥已设置为过期,任何重写密钥的内容的命令(如设置设置等)将清除密钥的时空值。

1persist key_melon

如果成功完成,坚持命令将返回(整数) 1,表示密钥将不再过期。

结论

本指南详细介绍了在 Redis 中操纵和检查密钥持久性的若有其他相关命令、论点或程序,您希望在本指南中了解,请在评论中询问或提出建议。

有关 Redis 命令的更多信息,请参阅我们的教程系列 如何管理 Redis 数据库

Published At
Categories with 技术
comments powered by Disqus