У меня есть база данных, где хранятся продукты.Должен ли я хранить кэшированные данные в памяти для webapp?
Существует также список категорий.
Каждый товар относится к категории.
Когда список продуктов обновлений, я запускаю функцию updateProductsCategories()
, который запрашивает базу данных, вычисляет количество товаров в каждой категории, и возвращает список, как это:
Food: 20
Drinks: 74
Jackets: 15
я использую этот список на веб-странице чтобы показать категории как ссылки с количеством продуктов в нем.
Мое предположение заключается в том, что я должен запускать updateProductsCategories()
, так как это происходит, когда продукты меняются, но не вызывают его каждый раз, когда страница загружается, но поместить его результат в объект в памяти и получить данные от него, чтобы показать на странице.
Таким образом, я не буду делать ненужные запросы db каждый раз, когда показываю страницу, но буду использовать кешированные данные и всегда буду иметь актуальную информацию, поскольку она обновляется при изменении продуктов.
Поскольку объект невелик, я не думаю, что мне нужны дополнительные решения, такие как Redis.
Это правильный и распространенный способ оптимизации приложения? Будет ли она добавлять скорость в приложение в реальном мире?
Если у вас есть только один процесс вашего приложения, тогда это нормально, иначе вам может понадобиться выяснить способ, с помощью которого все процессы узнают, что продукт обновлен, поскольку это будет выполняться только одним из процессов. – Ankur