Redis и оптимистический контроль параллелизма: возможно ли это? - PullRequest
4 голосов
/ 14 ноября 2011

Работа в приложении, которое хранит объекты в redis в виде сериализованного двоичного двоичного объекта.У меня есть несколько клиентов, работающих с одним и тем же набором данных, и я хочу использовать оптимистичный параллелизм.

Мои требования таковы:

  1. Считать сериализованную сущность для конкретного ключа за один прием
  2. Запишите модифицированную сущность обратно в redis.Если какой-либо другой клиент изменил сущность между чтением и записью, операция завершится неудачей

Можно ли это сделать в redis?И если так: какие команды redis должны быть выполнены для этого?

Ответы [ 2 ]

5 голосов
/ 16 ноября 2011

WATCH key, GET key, MULTI, SET key, затем EXEC.EXEC потерпит неудачу, если значение ключа изменилось с тех пор, как вы выполнили WATCH.

http://redis.io/topics/transactions#cas

0 голосов
/ 24 февраля 2016

Для тех, кто использует библиотеку StackExchange.Redis, имейте в виду, что она мультиплексирует одно соединение, и описанный выше шаблон проверки и установки может не работать должным образом для 2 запросов, разделяющих это соединение.Смотрите эту статью в документах: ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...