完整命令:
GETSET key value
可用版本:>=1.0.0
时间复杂度:O(1)
将给定key的值设为value,并返回key的旧值(old value)。
当key存在,但不是字符串类型时,返回一个错误。
返回值
返回给定key的旧值。
当key没有旧值时,返回nil;key不存在时,也返回nil。
设计模式
GETSET可以和INCR组合使用,实现一个有原子性(atomic)复位操作的计数器(counter)。
举例来说,每次当某个事件发生时,进程可能对一个名为mycount的key调用INCR操作,通常我们还要在一个原子时间内同时完成获得计数器的值和将计数器值复位为0两个操作。
可以用命令GETSET mycounter 0来实现这一目标。
示例
redis> SET mykey "Hello"
"OK"
redis> GETSET mykey "World"
"Hello"
redis> GET mykey
"World"
redis> INCR mycounter
(integer) 1
redis> GETSET mycounter "0"
"1"
redis> GET mycounter
"0"