Как можно реализовать кэш на бэкенде? Какие есть способы?
Answer from AI
sobes.tech AI
Кэш на бэкенде можно реализовать несколькими способами:
-
В памяти приложения — хранение данных в оперативной памяти (например, с помощью словарей, LRU-кэшей). Быстро, но ограничено ресурсами сервера и не подходит для масштабируемых систем.
-
Внешние кэш-системы — Redis, Memcached. Позволяют хранить кэш централизованно, обеспечивают высокую скорость доступа и масштабируемость.
-
HTTP-кэширование — использование заголовков Cache-Control, ETag для кэширования ответов на уровне HTTP.
-
Кэширование на уровне базы данных — например, Materialized Views, индексы или встроенные механизмы кэширования.
-
Кэширование с помощью CDN — для статического контента и API-ответов.
Пример использования Redis для кэширования результата запроса на Python:
import redis
cache = redis.Redis(host='localhost', port=6379)
key = 'user_123_profile'
cached_data = cache.get(key)
if cached_data:
profile = cached_data
else:
profile = get_profile_from_db(123) # функция получения из БД
cache.set(key, profile, ex=3600) # кэшируем на час