🚀 Вышла книга Build Layered Microservices! Купите себе копию прямо сейчас на learnbackend.dev.

В статье Введение в шаблоны кэширования мы рассмотрели 4 различных метода, используемых для кэширования данных, и 3 самые большие проблемы, связанные с этим. Давайте теперь рассмотрим 5 наиболее известных и используемых реализаций кэширования, которые вы должны знать как разработчик, начиная с кэширования в памяти.

Кэширование в памяти

Кэширование в оперативной памяти означает, что данные хранятся в оперативной памяти, которая обычно работает быстрее, чем традиционные базы данных и дисковое оборудование, поскольку поддерживает более высокую скорость запросов или IOPS, что означает ввод/вывод. Операций в секунду — в конечном итоге повышение производительности поиска данных и снижение затрат при масштабировании.

Наиболее распространенная реализация этого типа кэширования основана на хранилищах «ключ-значение», что по существу означает, что всякий раз, когда вы предоставляете хранилищу уникальный ключ или идентификатор, оно будет возвращать соответствующее значение, такое как числа, строки, массивы, списки и различные других типов данных.

Этот подход является одним из наиболее предпочтительных для разработчиков, поскольку он быстрый, эффективный и простой для понимания.

Кэширование базы данных

Кэширование базы данных относится к базе данных, сохраняющей результаты часто запрашиваемых данных во внутреннем кеше, чтобы избежать ненужных или чрезмерных запросов, что, в свою очередь, снижает ее рабочую нагрузку.

Например, загрузка информации о профиле пользователя в любом приложении для социальных сетей включает в себя сложные запросы к нескольким таблицам данных, и выполнение этого запроса тысячи раз за короткий промежуток времени без кэширования может на самом деле оказать слишком большое давление на вашу базу данных, которая в конечном итоге может привести к сбою или стать слишком медленный ответ, что приводит к каскадным тайм-аутам.

Кэширование браузера

Кэширование браузера, также известное как Кэширование HTTP, означает, что ваш браузер сохраняет такие ресурсы, как текст, изображения, таблицы стилей, сценарии и медиафайлы, загружаемые через HTTP всякий раз, когда вы загружаете веб-страницу для первый раз.

Этот кеш используется, чтобы сделать посещенные документы доступными для навигации вперед и назад, сохранения, просмотра в качестве источника и т. д., не требуя дополнительной поездки на сервер, что также улучшает автономный просмотр всякий раз, когда вы пытаетесь открыть веб-сайт или ваш Интернет. связь не работает.

Таким образом, в следующий раз, когда вы посетите ту же страницу, браузер может просмотреть свой собственный кэш, расположенный на вашем компьютере, в поисках ресурсов, которые были ранее сохранены, что в конечном итоге снижает задержку загрузки и сетевой трафик.

Кэширование веб-сервера

Кэширование сервера — это выделенная служба кэширования, обычно прокси-сервер, в которой хранится часто запрашиваемый и динамически создаваемый контент, например сложные веб-страницы или файлы, создание которых требует времени.

Таким образом, серверы не перегружаются за счет сокращения объема работы и повышения скорости доставки страниц.

Кэширование CDN

И, наконец, CDN или сеть доставки контента относится к сети прокси-серверов, которые кэшируют контент, такой как веб-страницы, таблицы стилей, сценарии и медиафайлы, и которые расположены между пользователя и исходного сервера.

Обычно физически ближе к местоположению клиента, его цель — перехватить запрос клиента к ресурсу и немедленно доставить его, если он владеет его копией, или перенаправить запрос на исходный сервер.

Это позволяет значительно сократить сетевые задержки и количество запросов к исходному серверу для ресурсов, которые сильно запрашиваются или должны загружаться очень быстро.

Что дальше?

Не забудьте 👏🏻 x50, если вам нравится читать мою работу!

👉 Нравится ли вам такой контент? Ознакомьтесь с книгой Создание многоуровневых микросервисов на https://learnbackend.dev о том, как создать готовый к эксплуатации микросервис многоуровневой аутентификации с использованием платформы Express, который соответствует отраслевым стандартам в с точки зрения практики разработки и архитектуры программного обеспечения от первой строки кода до последней строки документации.