首页 > 编程笔记

Redis SETEX命令的用法

Redis SETEX 命令的基本语法如下:

SETEX key seconds value

SETEX 用于设置 key 对应的值为 String 类型的 value,并指定此 key 对应的有效期,有效期的过期时间以秒(seconds)为单位。

如果 key 对应的值已经存在,那么 SETEX 将覆盖旧值。

这个命令类似于以下两个命令:
SET key value       #设置值
EXPIRE key seconds  # 设置过期时间
不同之处在于,Redis SETEX 命令是一个原子性操作,设置值和设置过期时间两个操作会在同一时间内完成。该命令经常用在缓存操作中。

返回值:设置成功时返回 OK;当 seconds 参数不合法时,返回一个错误。

实例1:key 不存在。
127.0.0.1:6379> SETEX color 60 red  # 设置color的过期时间为60s
OK
127.0.0.1:6379> GET color           # 获得color值
"red"
127.0.0.1:6379> TTL color           # 获得color剩余的过期时间
(integer) 49
127.0.0.1:6379> GET color
"red"
127.0.0.1:6379> GET color           # 60s后,color值为空
(nil)
本例我们添加了一个 color-red 对,并指定它的有效期是 60s。然后使用 TTL 命令查看 color 的过期时间,最后一次调用 color 是在 60s 以后,所以取不到 color 对应的值。

实例2:key 已经存在,key 对应的值将被覆盖。
127.0.0.1:6379> SET color "red"
OK
127.0.0.1:6379> SETEX color 60 "green"
OK
127.0.0.1:6379> GET color
"green"
在本例中已经设置了color对应的值,可以使用SETEX覆盖color对应的值。使用SETEX设置过期时间60s,在60s内color对应的值为green。

推荐阅读