GETSET
GETSET (deprecated)
Начиная с версии Redis 6.2.0, эта команда считается устаревшей.
Её можно заменить на SET с аргументом GET при миграции или написании нового кода.
GETSET key value
- Доступно с версии:
- 1.0.0
- Временная сложность:
- O(1)
- Категории ACL:
-
@write,@string,@fast,
Атомарно устанавливает key в value и возвращает старое значение, хранившееся по адресу key. Возвращает ошибку, если key существует, но не содержит строковое значение. Любое ранее установленное время жизни ключа игнорируется при успешной операции SET.
Схема проектирования
GETSET можно использовать вместе с INCR для подсчёта со сбросом. Например: процесс может вызывать INCR по ключу mycounter каждый раз, когда происходит какое-либо событие, но время от времени необходимо получить значение счётчика и атомарно сбросить его в ноль. Это можно сделать с помощью GETSET mycounter "0":
INCR mycounter GETSET mycounter "0" GET mycounter
Возвращаемое значение
Строковый ответ: старое значение, хранившееся по адресу key, или nil если key не существовал.
Примеры
SET mykey "Hello" GETSET mykey "World" GET mykey
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/getset/