1
0
Fork 0
iredis/iredis/data/commands/getset.md
Daniel Baumann db5ed8b1cc
Merging upstream version 1.9.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-02-09 17:04:04 +01:00

33 lines
908 B
Markdown

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. Any
previous time to live associated with the key is discarded on successful `SET`
operation.
## 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"`:
```cli
INCR mycounter
GETSET mycounter "0"
GET mycounter
```
As per Redis 6.2, GETSET is considered deprecated. Please prefer `SET` with
`GET` parameter in new code.
@return
@bulk-string-reply: the old value stored at `key`, or `nil` when `key` did not
exist.
@examples
```cli
SET mykey "Hello"
GETSET mykey "World"
GET mykey
```