Альтернатива Redlock в Redis для распределенной блокировки - PullRequest
0 голосов
/ 30 января 2019

Redis имеет две операции LPUSH и BLPOP

BLPOP - блокирует всех клиентов до тех пор, пока в список не будет вставлен элемент.BLPOP разблокирует только одного клиента (тот, который ждет самое длинное время)

LPUSH - помещает элемент в список

Можем ли мы реализовать распределенную блокировку, используя эти два примитива?Я думал, что lock & unlock будет что-то вроде

LOCK: 
  BLPOP key timeout

UNLOCK
  LPUSH key dummy-value

Инициализация блокировки может инициализировать список с начальной dummy-value

Удовлетворяет ли это жизнеспособность, прогресс и безопасность?

...