Redis GETEX 命令
语法
1 | GETEX key [EX seconds | PX milliseconds | EXAT unix-time-seconds | |
可用版本
≥ 6.2.0
时间复杂度
$O(1)$
ACL 类别
@write
, @string
, @fast
获取 key
的值,并可以选择设置其过期时间。GETEX
与 GET
类似,但它是一个带有额外选项的写命令。
选项
GETEX
命令支持以下选项来修改它的行为:
EX
seconds — 设置指定的过期时间,单位是秒。
PX
milliseconds — 设置指定的过期时间,单位是毫秒。
EXAT
timestamp-seconds — 设置指定的 Unix 时间,key 将在该时间过期,单位是秒。
PXAT
timestamp-milliseconds — 设置指定的 Unix 时间,key 将在该时间过期,单位是毫秒。
PERSIST
— 删除 key 的过期时间,即 key 永不过期。
返回值
返回 key
的值,如果 key
不存在,则返回 nil
。
示例 1
对已存在的 key 进行 GETEX
操作:
- 使用
SET
命令设置一个键username
的值为"johnson"
。此时键没有过期时间,所以TTL
命令返回 -1。 - 使用
GETEX
命令获取username
的值,并设置过期时间为 10 秒。所以TTL
命令现在返回 9(两次命令间隔了 1 秒)。 - 键过期后,
TTL
命令返回 -2,表示键已过期。
1 | redis> SET username "johnson" |
示例 2
使用 PX
选项,返回 key 的值,同时将 key 的过期时间设置为 60000 毫秒:
1 | redis> SET username "johnson" |
示例 3
使用 EXAT
选项,返回 key 的值,同时将 key 的过期时间设置在 2023-06-03 01:00:00
:
1 | redis> SET username "johnson" |
示例 4
使用 PXAT
选项,返回 key 的值,同时将 key 的过期时间设置在 2023-06-03 01:00:00
:
1 | redis> SET username "johnson" |
示例 5
使用 PERSIST
选项,返回 key 的值,同时移除 key 的过期时间,即不让该 key 自动过期:
1 | redis> TTL username |
(END)
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.