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

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

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

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

Если я спрошу вас, каков результат 5 х 3, вы узнаете, что ответ будет 15. Вам не нужно было его вычислять, вы проделывали это умножение столько раз в своей жизни, что вам больше не нужно — вы просто запоминаете результат без какой-либо умственной обработки. Ну, примерно так работает кеширование.

Кэш процессора

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

Кэш-память — это высокоскоростная статическая оперативная память (SRAM), расположенная в непосредственной близости от ЦП для быстрого доступа к часто используемым данным. Микропроцессор компьютера может получить к нему доступ быстрее, чем оперативная память (ОЗУ). Это очень быстро, поэтому чем больше, тем лучше, так как вашему компьютеру не нужно ждать информации. Кэш-память предназначена для хранения программных инструкций и данных, которые многократно используются в работе программ, или информации, которая, вероятно, понадобится процессору в следующий раз. Быстрый доступ к инструкциям увеличивает общую скорость работы программы.

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

Выглядит легко, но это не так

Кэширование включает в себя следующие проблемы…

  1. Работа с динамическими данными. Если ваши данные меняются слишком быстро и вы не хотите их кэшировать, иначе ваши пользователи получат неточные и старые данные. В конце концов, инвалидация кеша — одна из двух сложных вещей в информатике.
  2. Ошибки. Что происходит, когда ваш кеш выходит из строя? Смогут ли ваши серверные системы справиться с возросшей нагрузкой? Одним из решений является создание нескольких уровней кэширования. Например, локальный кэш для каждого сервера приложений, а также общий парк удаленных кэшей для всех серверов приложений.
  3. Развертывание. Локальные кэши, скорее всего, будут очищены при повторном развертывании веб-серверов или, по крайней мере, будут пусты при развертывании новых серверов приложений. Как вы загружаете кеш, чтобы избежать всплеска внутреннего трафика при каждом развертывании? Как вы развертываете обновления в своем парке общих кэшей, не перегружая серверные системы при очистке кэшей?

Вывод

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

Спасибо…

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