 如何使Redis中的Key过期)
介绍Redis是一个开源的内存中键值数据存储。默认情况下Redis密钥是_永久性_的这意味着Redis服务器将继续存储它们除非手动将其删除。但是在某些情况下您已经设置了密钥但是您知道要在经过一定时间后才将其删除。换句话说您希望密钥是_可变的_。本教程说明了如何设置密钥的过期时间如何检查直到密钥过期的剩余时间以及取消密钥的过期设置。如何使用本指南本指南以备有完整示例的备忘单形式编写。我们鼓励您跳至与您要完成的任务相关的任何部分。本指南中显示的命令已在运行Redis版本4.0.9的Ubuntu 18.04服务器上进行了测试。要设置类似的环境您可以按照我们的指南如何在Ubuntu 18.04上安装和保护Redis的步骤1进行操作。我们将通过使用Redis命令行界面运行它们来演示这些命令的行为。请注意如果您使用其他Redis界面例如Redli则某些命令的确切输出可能会有所不同。redis-cli另外您可以提供一个托管的Redis数据库实例来测试这些命令但是请注意根据数据库提供者所允许的控制级别本指南中的某些命令可能无法按所述方式工作。要配置DigitalOcean托管数据库请遵循我们的托管数据库产品文档。然后您必须安装Redli或设置TLS隧道才能通过TLS连接到托管数据库。Setting Keys to Expire您可以使用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 timestamp表示1746131400可以使用以下命令expireat key_melon 1746131400请注意如果传递给您的时间戳expireat已经发生它将立即删除密钥。Checking How Long Until a Key Expires你设置一键到期任何时候你可以检查剩余到期为止以秒为单位的时候ttl它的全称是“牛逼IME牛逼Ø升香港专业教育学院”ttl key_melon Output(integer) 433有关更详细的信息可以运行pttl它将返回直到密钥过期的时间以毫秒为单位pttl key_melon Output(integer) 431506如果密钥尚未设置为过期且密钥不存在则两者ttl和pttl都将返回。(integer) -1(integer) -2Persisting Keys如果密钥已设置为过期则任何覆盖密钥内容的命令例如set或getset都会清除密钥的超时值。要手动清除键的超时请使用以下persist命令persist key_melon如果成功完成该persist命令将返回(integer) 1表明密钥将不再过期。Conclusion本指南详细介绍了用于在Redis中操作和检查键持久性的许多命令。如果您想在本指南中概述其他相关的命令参数或过程请在下面的评论中提出疑问或提出建议。有关Redis命令的更多信息请参阅关于如何管理Redis数据库的系列教程。如何在ubuntu18.04上安装和保护redis如何连接到Redis数据库如何管理Redis数据库和Keys如何在Redis中管理副本和客户端如何在Redis中管理字符串如何在Redis中管理list如何在Redis中管理Hashes如何在Redis中管理Sets如何在Redis中管理Sorted Sets如何在Redis中运行事务如何使Redis中的Key失效如何解决Redis中的故障如何从命令行更改Redis的配置Redis数据类型简介Redis 中如何使用 lua 脚本Redis 常用命令指南