Атомарный набор, только если он еще не установлен

Есть ли способ сделать атомарный набор, только если он еще не установлен в Redis?

В частности, я создаю пользователя типа «myapp:user:user_email» и хочу, чтобы Redis возвращал мне сообщение об ошибке, если «user_email» уже занят, вместо того, чтобы молча заменять старое значение. Что-то вроде объявления, а не замены.


person Aaron Yodaiken    schedule 23.04.2013    source источник


Ответы (1)


См. SETNX.

Установите ключ для хранения строкового значения, если ключ не существует. В этом случае он равен SET. Когда ключ уже содержит значение, никакая операция не выполняется. SETNX — это сокращение от «SET, если нет X».

Вы можете проверить возвращаемое значение. Если он равен 0, ключ не был установлен, что означает, что он уже существовал.

person Sripathi Krishnan    schedule 23.04.2013
comment
Привет, вы ответили на вопрос, но хотели бы узнать, есть ли подобное решение для (H)MSETs? - person Aaron Yodaiken; 23.04.2013