Блокирующие VS неблокирующие списки
Всем привет. Изучаю Redis, наткнулся на то, что есть просто очереди/стеки через rpush/rpop lpush/lpop, а есть их блокирующие версии: brpop/brpush brpoplpush. Обьясните пожалуйста, в чём разница, где можно применить блокирующие версии, и(лично пойду помолюсь), если есть теория, которая показывает, зачем такие механизмы нужны, и как они крутятся под капотом (в моём случае капомот *nix систем)
** UPD пока что, я понял что
1.Блокирующие списки задаются на определенное время и полностью блокируют вызываемый процесс (полагаю, что это удобно будет для демонов ==> запустил процесс, редис-кли поставил такое-то время жизни, и этот процесс не может делать больше ничего кроме как ждать(защита от дурака) )
- Они используются, если мне нужно дождатся ответ от процесса, который может идти ну оооочень долго
НО, тогда вопрос вот такой: в книге "7 баз данных за 7 недель" приводится пример блок списка как части онлайн чата. Насколько вообще правильно в таком случае использовать этот механизм для чата?
Ответы - Блокирующие VS неблокирующие списки / Блокирующие VS неблокирующие списки

01.09.2018 07:40:12
Мне не до конца понятен смысл вопроса. Стандартная семантика же.
При использовании rpop
, если в очереди нет данных, а нам они нужны, мы будем вынуждены применить поллинг - постоянно опрашивать.
При использовании brpop
поллинг не нужен - мы автоматически получим данные, как только они появятся.
