GETSET key value
Available since 1.0.0.
Time complexity: O(1)
Atomically sets key
to value
and returns the old value stored at key
. Returns an error when key
exists but does not hold a string value.
*Design pattern
GETSET can be used together with INCR for counting with atomic reset. For example: a process may call INCR against the key mycounter
every time some event occurs, but from time to time we need to get the value of the counter and reset it to zero atomically. This can be done using GETSET mycounter "0"
:
redis> INCR mycounter
- (integer) 1
redis> GETSET mycounter "0"
- "1"
redis> GET mycounter
- "0"
*Return value
Bulk string reply: the old value stored at key
, or nil
when key
did not exist.
*Examples
redis> SET mykey "Hello"
- "OK"
redis> GETSET mykey "World"
- "Hello"
redis> GET mykey
- "World"