Открыть сервис

Кэширование

Кэширование — это процесс сохранения часто запрашиваемых данных в специальном хранилище (кэше) для ускорения последующего доступа к ним. Является фундаментальным методом оптимизации производительности вычислительных систем, веб-сервисов, баз данных и аппаратного обеспечения. Основная цель кэширования — сократить время получения данных и снизить нагрузку на исходный источник (диск, базу данных, удалённый сервер) за счёт использования более быстрого, но, как правило, более ограниченного по объёму промежуточного хранилища.

Принцип работы

Кэширование основано на принципе локальности обращений, который проявляется в двух формах:

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

История

Идея кэширования возникла из необходимости преодолеть разрыв в скорости между быстрым процессором и медленной оперативной памятью (DRAM). Первые коммерческие реализации кэша появились в мейнфреймах IBM в 1960-х годах (модель System/360 Model 85). В персональных компьютерах кэш-память процессора стала массово применяться с появлением микропроцессора Intel 80486 в 1989 году. В веб-технологиях кэширование активно развивалось с середины 1990-х годов для ускорения загрузки сайтов и снижения нагрузки на серверы.

Виды кэширования

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

По уровню в иерархии памяти (аппаратное кэширование)

В компьютерной архитектуре кэш-память разделяется на уровни (L1, L2, L3), которые различаются скоростью, объёмом и расположением относительно процессора:

По способу организации данных (программное кэширование)

По области применения

Устройство и характеристики

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

Алгоритмы вытеснения

Поскольку объём кэша ограничен, при его заполнении необходимо решать, какие данные удалить для освобождения места. Основные алгоритмы вытеснения:

Применение в России

В Российской Федерации кэширование широко применяется во всех сферах ИТ-инфраструктуры. Крупные российские интернет-компании (Яндекс, VK, Сбер) используют собственные системы кэширования на базе Redis, Tarantool и Memcached для обеспечения высокой скорости работы поисковых систем, социальных сетей и банковских приложений. В рамках реализации национальной программы «Цифровая экономика» активно внедряются системы кэширования на сетевом уровне, в том числе на узлах связи операторов «большой четвёрки» (МТС, Билайн, Мегафон, Tele2) для ускорения доступа к контенту. В государственных информационных системах (ГИС ЖКХ, ЕГИССО) кэширование используется для снижения нагрузки на серверы баз данных при обработке массовых запросов граждан.

Критика и ограничения

Кэширование имеет ряд недостатков:

Источники

  1. А. Таненбаум, Т. Остин. «Архитектура компьютера». 6-е издание. — СПб.: Питер, 2015.
  2. Д. Паттерсон, Дж. Хеннесси. «Архитектура компьютера и проектирование компьютерных систем». 5-е издание. — М.: ДМК Пресс, 2017.
  3. М. Фаулер. «Шаблоны корпоративных приложений». — М.: Вильямс, 2010.
  4. RFC 7234 — Hypertext Transfer Protocol (HTTP/1.1): Caching. Internet Engineering Task Force (IETF), 2014.
  5. Документация Redis — «Introduction to Redis caching». Redis Ltd., 2023.
  6. Материалы конференций HighLoad++ (Москва, 2019–2023) — секции по кэшированию в высоконагруженных системах.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →