lru_cache подходит для дешёвого локального кеша результатов внутри одного процесса. Redis или Memcached выбирают, когда кеш нужен нескольким экземплярам приложения и требуется отдельное управление хранением.
lru_cache или Redis/Memcached — что лучше использовать и когда?
lru_cache подходит для дешёвого локального кеша результатов внутри одного процесса. Redis или Memcached выбирают, когда кеш нужен нескольким экземплярам приложения и требуется отдельное управление хранением.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
lru_cache подходит для дешёвого локального кеша результатов внутри одного процесса. Redis или Memcached выбирают, когда кеш нужен нескольким экземплярам приложения и требуется отдельное управление хранением.
Локальный кеш не требует сети и сериализации, но дублируется между workers и исчезает при рестарте. lru_cache ограничивает число записей, а не автоматически срок свежести или общий размер объектов. Внешний кеш добавляет задержку, отказоустойчивость и эксплуатацию, зато даёт общий слой и TTL. Решение зависит от стоимости вычисления, размера, допустимой устарелости и правил инвалидирования. Кеш не должен подменять авторизацию и источник истины.