Navicat 博客

Redis 的过期键 2023 年 10 月 6 日,由 Robert Gravelle 撰寫

Redis 是一种高性能的内存数据存储,以其速度和多功能性而闻名。其中一个有用的特性是为键设置过期时间的功能。在 Redis 中,为键设置过期时间对于管理数据和确保过时或临时数据自动从数据库中删除是至关重要的。在本文中,我们将探讨在 redis-cli 和 Navicat for Redis 如何设置 Redis 的过期键,以及如何在各种场景中应用此功能。

设置键的过期时间

若要在 Redis 中为键设置过期时间,你可以使用命令 EXPIRESETEX 。命令 EXPIRE 允许你以秒为单位设置过期时间,而命令 SETEX 则是允许在一个命令中同时设置键的值和过期时间。下面是如何使用这两个命令的说明:

使用命令 EXPIRE:

127.0.0.1:6379> SET mykey "Hello, Redis"
OK
127.0.0.1:6379> EXPIRE mykey 60
(integer) 1

在这个例子中,我们首先使用命令 SETmykey 的值设置为“Hello,Redis”。然后,我们使用命令 EXPIREmykey 的过期时间设置为 60 秒。60 秒后,该键将自动从数据库中删除。

使用命令 SETEX:

127.0.0.1:6379> SETEX mykey 60 "Hello, Redis"
OK

通过单个命令 SETEX ,我们可以指定键、过期时间(这种情况下为60秒)和值,即在单个命令中实现相同的结果。

查看生存时间(TTL)

若要查看键过期前剩余的时间,你可以使用命令 TTL 。该命令返回剩余的秒数,如果键不存在,则返回 -2,如果键存在但没有关联的过期时间(它永远不会过期),则返回 -1。下面是如何使用它的说明:

127.0.0.1:6379> TTL mykey
(integer) 30

在这个例子中,我们查看 mykey 剩余的时间,它被设置为在 60 秒后过期。该命令返回 30,表示还有 30 秒键就会过期。

删除已过期的键

当 Redis 中的键过期时间达到时,Redis 会自动删除该键。当然,你也可以使用命令 DEL 手动删除此键。如果你想在键过期之前删除它,这会很有用。下面是如何使用它的说明:

127.0.0.1:6379> DEL mykey
(integer) 1

在这个例子中,我们使用命令 DEL 手动删除 mykey 键。运行此命令后,该键将不再存在于数据库中。

在 Navicat 中设置过期键

在 Navicat 中,数据编辑器包含一个 TTL 下拉列表,用于设置键的过期时间:

TTL_dropdown (74K)

TTL 下拉列表包括“无 TTL”、“过期時间 (秒)”和“过期時间 (本地时间)”三个选项。下面是如何是如何设置键在 60 秒后过期:

expire_in_60_seconds (21K)

点击“应用”按钮后,键的过期信息将设置成功。

过期键的常见用例

在 Redis 中,过期键可以用于各种场景,以有效地管理数据:

1. 缓存

Redis 常被用作缓存层。通过为缓存键设置较短的过期时间,可以确保缓存中的数据是最新的和相关的,避免存储过时的数据。

2. 会话管理

使用 Redis 可以更轻松地管理 Web 应用程序中的用户会话,为一定时间后不再活动的数据设置会话数据过期可以帮助释放资源并增强安全性。

3. 速率限制

速率限制是 API 限流的一个常见用例。Redis 可以通过在预定义时间后设置速率限制键的过期时间,来计数并限制客户端在特定时间范围内的请求数量。p>

4. 临时数据存储

Redis 可以用作后台任务或临时数据处理中的临时数据存储。过期键可以自动清理不再需要的数据,减少手动干预。

结语

在本文中,我们了解了在 redis-cli 和 Navicat for Redis 中如何设置 Redis 键的过期时间,以及如何在各种场景中应用这个功能。Redis 的过期键是一个强大的功能,它有助于高效地管理数据,确保过时或临时数据自动从数据库中删除。无论你使用 Redis 进行缓存、会话管理、速率限制还是临时数据存储,为键设置过期时间都可以显著提高应用程序的性能和可靠性。

Navicat 文章
频道条目
分享
文章归档