Выбор ответа Middle Кеш и очереди обновлено
Атомарный счётчик в Redis
Вопрос
Четыре экземпляра сервиса считают просмотры в Redis. Какой способ не теряет инкременты?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: INCR views:42. INCR выполняется на стороне Redis одной командой, а команды Redis обрабатываются последовательно, поэтому инкремент атомарен. - GET и SET из приложения дают гонку: два экземпляра прочитают 10 и оба запишут 11. - Переменная в процессе своя…
Варианты ответа
GET, прибавить 1 в Node,SETINCR views:42правильный ответ- Хранить счётчик в переменной и раз в минуту делать
SET GETиSETв одномPromise.all
Разбор
INCR выполняется на стороне Redis одной командой, а команды Redis обрабатываются последовательно, поэтому инкремент атомарен.
- GET и SET из приложения дают гонку: два экземпляра прочитают 10 и оба запишут 11.
- Переменная в процессе своя у каждого экземпляра, и они перезапишут друг друга.
Promise.allзапускает команды параллельно, атомарности это не даёт.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.