如何在 Redis 中过期键

介绍

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

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

如何使用此指南

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

在本指南中显示的命令在运行 Redis 版本 6.0.1 版本的 Ubuntu 22.04 服务器上进行了测试。 要设置类似的环境,您可以遵循我们指南中的 Step 1 在 How 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

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

持久的钥匙

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

1persist key_melon

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

结论

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

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

Published At
Categories with 技术
comments powered by Disqus