Redis: возникает ошибка, если ключ существует

Я разрабатываю приложение, в котором я помещаю ключ в Redis. Если данный ключ существует, Redis должен вызвать ошибку.

[Из-за проблем с параллелизмом я не могу прочитать ключ, а затем обновить файл Redis. Я тоже не могу написать кусок критического кода. ]

Можно ли настроить Redis таким образом?


person Ganesh Satpute    schedule 30.10.2017    source источник


Ответы (1)


Redis нельзя настроить так, чтобы он вызывал ошибку, но вы можете установить новый ключ таким образом, чтобы, если он уже существует, ничего не произошло, используя команду SETNX. Возвращаемое значение SETNX равно 1, если ключ не существовал и мы установили его значение, и 0, если он существовал и мы не могли установить новое значение.

Например:

127.0.0.1:6379> SETNX foo bar
(integer) 1 
127.0.0.1:6379> get foo
"bar"

127.0.0.1:6379> SETNX foo baz
(integer) 0
127.0.0.1:6379> get foo
"bar"

Обратите внимание, что вызов SETNX снова вернул 0, а значение в ключе не изменилось.

person Not_a_Golfer    schedule 30.10.2017