首页/数据/数据库速查/SET 设置键值(含过期与条件选项)
Redis 命令96 条

SET 设置键值(含过期与条件选项)

Redis 最核心的写命令:SET key value 支持 EX/PX 过期、NX/XX 条件、GET 返回旧值、KEEPTTL 保留原 TTL,是缓存写入与简易锁的基石。

数据库速查数据更新于 2026-10-12
用途写入字符串键并可选设置过期/条件
语法SET key value [NX|XX] [GET] [EX s|PX ms|EXAT ts|PXAT ts|KEEPTTL]
返回OK;NX/XX 不满足时返回 nil

常用写法

常用写法
SET article:1001 "{...json...}" EX 3600        # 写入并 1 小时过期
SET lock:order:88 1 NX PX 5000                # 不存在才写:分布式锁雏形
SET counter 10 XX GET                        # 仅当存在,返回旧值
SET k v EX 100 KEEPTTL                       # KEEPTTL 与 EX 别同时写,语义冲突
SET 覆盖任何类型旧值且不报错(含 List/Hash 都被直接覆盖),生产上用 SET 前先确认键的用途;用 EX 保证缓存一定有过期兜底。

易错点

  • SET 未带过期导致缓存永久驻留、内存只涨不降
  • 以为 SET 会保留 TTL:默认覆盖后 TTL 被清除,需显式 KEEPTTL

数据来源与参考

  • Redis 官方文档: SET
  • Redis 命令参考: Strings

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌