Sobes.tech
Back to questions
Middle
6

Как можно реализовать кэш на бэкенде? Какие есть способы?

Companies where asked
WildberriesWildberries

Answer from AI

sobes.tech AI

Кэш на бэкенде можно реализовать несколькими способами:

  1. В памяти приложения — хранение данных в оперативной памяти (например, с помощью словарей, LRU-кэшей). Быстро, но ограничено ресурсами сервера и не подходит для масштабируемых систем.

  2. Внешние кэш-системы — Redis, Memcached. Позволяют хранить кэш централизованно, обеспечивают высокую скорость доступа и масштабируемость.

  3. HTTP-кэширование — использование заголовков Cache-Control, ETag для кэширования ответов на уровне HTTP.

  4. Кэширование на уровне базы данных — например, Materialized Views, индексы или встроенные механизмы кэширования.

  5. Кэширование с помощью 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)  # кэшируем на час