Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: performance, caching, memory

Как можно организовать загрузку большого словаря в память приложения и обработку запросов к нему через один endpoint по ключу?

Вопрос проверяет умение работать с большими структурами данных в веб-приложениях.

Короткий ответ

Загрузите словарь при старте приложения (например, в startup событии FastAPI) и сохраните в памяти как глобальную переменную или в объекте приложения. Для доступа создайте endpoint, который будет искать значение по ключу. Можно использовать кэширование для ускорения.

Длинный ответ

1. Реализация в FastAPI

from fastapi import FastAPI

app = FastAPI()
big_dict = {}

@app.on_event("startup")
async def load_data():
    	global big_dict
    	big_dict = load_huge_dict_from_file()  # Ваша функция загрузки

@app.get("/lookup/{key}")
async def lookup(key: str):
    	return {"value": big_dict.get(key)}

2. Оптимизации

  • Кэширование (например, functools.lru_cache):

    @lru_cache(maxsize=1000)
    def cached_lookup(key):
        	return big_dict.get(key)
  • Распределённое хранение (Redis) если данных слишком много:

    async def lookup(key: str):
             value = await redis.get(key)
             if not value:
                    value = big_dict.get(key)
                    await redis.set(key, value)
             return value

Когда использовать:

  • В памяти: когда данные помещаются в RAM

  • Redis: при очень больших объёмах данных

  • Кэширование: для часто запрашиваемых ключей

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Python

    Python

Ключевые слова

#performance

#caching

#memory

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.