GETSET

将某个键设置为新值后,返回该键之前的字符串值。

语法

GETSET key value

引入版本:1.0.0

复杂度摘要:O(1)

以原子方式将 key 设置为 value,并返回 key 中存储的旧值。当 key 存在但不包含字符串值时,返回错误。成功执行 SET 操作后,与该键关联的任何先前生存时间都将被丢弃。

必需参数

key

键名称。

value

要设置的新值。

示例

redis> SET mykey "Hello"
OK
redis> GETSET mykey "World"
"Hello"
redis> GET mykey
"World"

详细说明

设计模式

您可以将 GETSET 与 INCR 一起使用来对事件进行计数并自动重置计数器。例如,每次发生事件时,您可以在 mycounter 键上调用 INCR。当您需要读取计数器值并将其自动重置为零时,请调用 GETSET。这可以使用 GETSET mycounter "0" 来完成:

redis> INCR mycounter
(integer) 1
redis> GETSET mycounter "0"
"1"
redis> GET mycounter
"0"

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动
从 Redis v6.2.0 开始已弃用。

返回值

RESP2

以下之一: * 批量字符串回复:存储在键处的旧值。 * 无回复:如果键不存在。

RESP3

以下之一: * 批量字符串回复:存储在键处的旧值。 * 空回复:如果键不存在。

资料来源:Redis 官方 GETSET 文档;中文内容参考 Redis 文档许可。