Данные успешно кеширует, и если нужного запроса нет, то лезет в монгу. Но проблема - если я обновлю данные в монге, то редис по прежнему возвращает свои значения по этому же ключу, так как думает что у него все есть и не лезет в монгу. Как подцепить сюда логику, чтоб после апдейта монги, данные в редисе тоже обновлялись? Сервер на ноде.
сделать инвалидейт кеша?
Никак. Это знаменитая проблема инвалидации кеша. Даже если и решишь путем дублирования запросов на обновления не только монги но и редиса у тебя приложение скорее всего будет подвержено race condition атакам. Решение проблемы - использовать что-то одно - либо монгу либо редис
Одно из решений - использовать временный кеш, который будет инвалидироваться сам через определенное время.
Обсуждают сегодня