Встречается на собеседованиях • сегодня

Как кэшировал данные на предыдущей работе

Мы использовали несколько подходов к кэшированию в зависимости от контекста:

  1. Redis для высоконагруженных эндпоинтов и часто запрашиваемых данных:
python
from django.core.cache import cache

def get_popular_products():
    key = "popular_products"
    data = cache.get(key)
    if data is None:
        data = Product.objects.filter(is_popular=True)[:10]
        cache.set(key, data, timeout=3600)  # 1 hour cache
    return data
  1. Memcached для сессий пользователей и временных данных.

  2. Локальный кэш (lru_cache) для тяжелых вычислений:

python
from functools import lru_cache

@lru_cache(maxsize=128)
def calculate_complex_stats(user_id):
    # heavy computations here
    return result
  1. Кэширование ORM-запросов через select_related/prefetch_related.

Ключевые моменты:

  • Устанавливали разумные TTL
  • Использовали инвалидацию кэша при изменениях данных
  • Мониторили hit/miss ratio
  • Для разных типов данных подбирали оптимальные стратегии
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы