GETSET (已弃用)
自 Redis 6.2.0 版本起,此命令被视为已弃用。
在迁移或编写新代码时,可以用带有GET
参数的SET
来替换它。
Syntax
GETSET key value
- Available since:
- 1.0.0
- Time complexity:
- O(1)
- ACL categories:
-
@write
,@string
,@fast
,
原子性地将key
设置为value
并返回存储在key
中的旧值。
当key
存在但不持有字符串值时返回错误。任何
与键关联的先前生存时间在成功的
SET
操作时被丢弃。
设计模式
GETSET
可以与 INCR
一起使用,用于原子重置计数。
例如:每次某个事件发生时,一个进程可能会对键 mycounter
调用 INCR
,但有时我们需要获取计数器的值并将其原子性地重置为零。
这可以通过使用 GETSET mycounter "0"
来实现:
示例
RESP2 回复
以下之一:
- Bulk string reply: 存储在键中的旧值。
- Nil reply: 如果键不存在。
RESP3 回复
以下之一:
- Bulk string reply: 存储在键中的旧值。
- Null reply: 如果键不存在。