@mykolaim
PHP developer

Как использовать Atomic Locks в Redis?

Есть набор видео. [a,b,c,d]
Есть несколько пользователей. [1,2,3]
Если пользователь сделал запрос на получение видео, то в течении времени N оно должно возвращаться только ему, а другим пользователям нет.

Я вижу вариант кешировать ассоциативный массив что какой пользователь взял, и на его основе делать выборку, но возможно есть более красивое решение ? Смотрел в сторону Atomic Locks но не до конца понял для чего это нужно
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
tumbler
@tumbler
бекенд-разработчик на python
Как использовать Atomic Locks в Redis?

В разных библиотеках интерфейс и реализация блокировок разные, надо смотреть примеры для конкретного клиента.

возможно есть более красивое решение

Возможно есть, зависит от требований.

не до конца понял для чего это нужно

Атомарные блокировки нужны для организации монопольного доступа к какому-то ресурсу. Как пример, для решения проблемы гонок при попытке "взять" одно видео сразу несколькими пользователями. Сначала получается блокировка: это гарантирует, что остальные претенденты будут ожидать ее освобождения. Затем выполняются нужные действия, например, манипуляции с ассоциативным массивом. В конце блокировка обязательно освобождается.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы