Redis HSET 过期2025 年 5 月 18 日 | 阅读 7 分钟 引言Redis 是一种流行的存储在内存中的信息存储,可用作通信代理、数据库和存储。 HSET 是其众多有用的命令之一,对于处理哈希数据类型至关重要,因为它允许您在哈希中设置字段-值对。 但是,HSET 本身不支持过期。 您必须将 EXPIRE 命令与哈希一起使用才能设置其过期时间。 使用 HSET 设置哈希后,使用 EXPIRE 定义生存时间(以秒为单位)。 这种组合确保哈希在预定时间段后自动删除,非常适合维护对时间敏感的数据。 例如,考虑一个用户配置文件,其中每个用户都包含其地址、电子邮件、姓名和年龄等详细信息。所有这些特征都可以保存在 Redis 哈希中的单个密钥下。 上面的例子表明 Redis 键是 user:1001,哈希包含以下四个字段:address、age、email 和 name。 01. HSET 命令在 Redis 中使用 `HSET` 命令设置哈希中字段的值。 如果该字段已存在,则更新其值;如果不存在,则生成一个额外的字段。 此命令适用于使用键值数据库 Redis 管理具有结构的数据,包括对象或记录。 基本语法
示例 在这种情况下,在 user:1001 哈希的 name 字段中输入“Jane Doe”。 如果 name 字段尚不存在,则将创建其值为“Jane Doe”。 返回值 HSET 命令产生的结果是
02. Redis 中的密钥过期设置密钥过期日期是 Redis 最强大的功能之一。 Redis 自动删除已过期的密钥以释放内存。 缓存、会话管理以及数据仅在有限时间内相关的其他用例将从此功能中受益匪浅。 您可以使用多个命令设置 Redis 中密钥的过期时间,包括 EXPIRE、PEXPIRE、SETEX 和 PSETEX。 使用“EXPIRE”设置过期时间 可以使用 EXPIRE 命令设置密钥的超时时间。 紧随超时之后,该密钥将立即被删除。 基本语法
示例
03. HSET 和密钥过期之间的交互处理 Redis 哈希和密钥过期时,最常见的问题之一是这两个功能如何协同工作。 特别是,当具有设置的过期时间的密钥与 HSET 命令一起使用时会发生什么? 密钥过期的影响 当您在已设置过期时间的哈希上运行 HSET 命令时,Redis 不会重置过期计时器。 该密钥仍将在先前计划的时间过期; 过期时间保持不变。 示例
无论添加年龄列的 HSET 命令如何,密钥 user:1001 仍将在 3600 秒后过期并被销毁。 过期计时器不受 HSET 指令的影响。 使用“EXPIRE”刷新过期时间 使用 HSET 后,您可以再次使用 EXPIRE 命令重置过期计时器。 由于此序列中的操作,user:1001 密钥将在上次 HSET 操作后 3600 秒后过期。 04. HSET 与过期的用例您可能希望在几种不同的情况下将 HSET 与密钥过期结合使用。
在本例中,cache: query:user:1001 哈希包含查询结果,它将在 300 秒(5 分钟)后过期。 如果再次运行相同的查询,则可以在五分钟内从 Redis 接收缓存的响应,从而避免重复昂贵的过程。
在本例中,使用唯一 ID abc123 建立的会话中存储 user_id 和 status。 一小时后,会话将结束,用户将不得不重新进行身份验证。
在本例中,使用 HINCRBY 命令增加了 rate:limit:user:1001:api_call 哈希中的 count 字段,该字段记录了用户 1001 执行的 API 调用的总数。 计数器在指定的 60 秒过期时间后重置。 05. 高级主题
如果密钥未定义过期时间,则 TTL 命令将返回 -1。 如果该密钥不存在,则返回 -2。
借助此命令,user:1001 密钥变为持久的,这意味着除非定义了另一个过期时间,否则它不会消失。 06. 常见陷阱和注意事项
结论将 Redis HSET 的强大功能与密钥过期相结合,使您能够创建高性能、有效的应用程序。 无论您是实施速率限制、维护用户会话还是缓存数据,了解 HSET 如何与密钥过期配合使用都很重要。 通过遵守推荐的程序并意识到典型危害,您可以充分利用 Redis 并构建可靠、快速启动的系统。 就像任何强大的技术一样,成功的秘诀在于掌握其行为的细微差别并在您的应用程序中明智地使用它。 下一个主题Redis-localhost |
我们请求您订阅我们的新闻通讯以获取最新更新。