You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis中SET与PERSIST命令移除过期时间的差异是什么?

Redis中SET key value与PERSIST key移除过期时间的差异

两者核心差异主要体现在三个方面:

  • 值的处理逻辑不同

    • SET key value会直接覆盖键对应的原有值,同时移除过期时间。哪怕你想保留原值,用这个命令也会把值换成新的。
    • PERSIST key仅移除键的过期时间,完全不会改动键对应的value,原值会完整保留。
  • 执行的前提条件不同

    • SET key value没有特殊限制:键存在就覆盖值并清过期时间;键不存在就直接创建新键,设置值且无过期时间,总能执行成功。
    • PERSIST key有严格前提:只有当键存在且带有过期时间时,才会执行成功(返回1);如果键不存在,或者键本来就没有过期时间,命令会返回0,不会做任何操作。
  • 适用场景不同

    • 如果需要同时更新键的值并移除过期时间,用SET一步完成,是原子性操作,不会出现中间状态。
    • 如果只需要保留现有值,仅移除过期时间,PERSIST是更安全的选择,避免误修改值。

举个实际例子:假设key当前值为old_data,且带有100秒的过期时间

  • 执行SET key new_data后,key的值变为new_data,过期时间被清除。
  • 执行PERSIST key后,key的值还是old_data,过期时间被清除。

内容的提问来源于stack exchange,提问作者Guihai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 02:49:58