Кэширование данных для оптимизации производительности — Microsoft Azure Well-Architected Framework
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Кэширование — это стратегия, при которой вы храните копию данных наряду с основным хранилищем данных. Преимущества кэширования включают уменьшение времени отклика и возможность быстро обслуживать данные, что может улучшить взаимодействие с пользователем. Хранилище кэша обычно размещается ближе к клиенту, чем основное хранилище.
Кэширование становится наиболее эффективным, когда экземпляр клиента несколько раз считывает те же данные, особенно в том случае, если к исходному хранилищу данных применяются все указанные далее условия.
- Оно остается относительно статичным.
- Оно является медленным по сравнению со скоростью кэша.
- Оно является объектом высокого числа конкурентных запросов.
- Оно находится далеко, из-за чего задержки в сети могут вызвать снижение скорости доступа.
Кэширование может значительно повысить производительность, масштабируемость и доступность данных. Преимущества кэширования становятся все заметнее с увеличением объемов данных и числа пользователей, которым необходим доступ к этим данным. Это происходит потому, что кэширование снижает задержку и число конфликтов, связанных с обработкой больших объемов параллельных запросов в хранилище исходных данных.
Включение соответствующего кэширования также позволяет сократить задержку за счет исключения повторяющихся вызовов микрослужб, API-интерфейсов и репозиториев данных. Ключом к эффективному использованию кэша является определение наиболее подходящих данных для помещения в кэш и их кэширование в правильный момент времени. Данные могут добавляться в кэш по требованию, как только они впервые извлекаются приложением. Это означает, что приложению будет необходимо извлечь данные из хранилища данных только один раз, а последующий доступ к ним уже может осуществляться с помощью кэша. Дополнительные сведения см. в разделе Определение способа эффективного кэширования данных.
Дополнительные сведения см. в разделе Кэширование.
Кэш Azure для Redis
Кэш Azure для Redis повышает производительность и масштабируемость приложения. Он обрабатывает большие объемы запросов приложений, сохраняя часто используемые данные в памяти сервера, в которой их можно быстро записать и считать. Кэш Azure для Redis на основе программного обеспечения Redis предоставляет хранилище данных с критически низкой задержкой и высокой пропускной способностью для современных приложений.
Кэш Azure для Redis также повышает производительность приложений за счет поддержки стандартных шаблонов архитектуры приложений. Некоторые из наиболее распространенных шаблонов включают кэш данных и кэш содержимого. Наиболее распространенные шаблоны и их описания см. в разделе Общие шаблоны архитектуры приложений.
Сеть доставки содержимого (CDN) Azure
Сеть доставки содержимого (CDN) является распределенной сетью серверов, которая позволяет эффективно доставлять пользователям веб-содержимое. Сети CDN хранят кэшированное содержимое на пограничных серверах в расположениях точек подключения, находящихся рядом с пользователями. Это позволяет свести задержки к минимуму. Дополнительные сведения о CDN см. в статье Что такое сеть доставки содержимого в Azure?
Azure CDN предлагает следующие основные возможности:
- Динамическое ускорение сайтов (DSA) — предоставляет пользователям быстрые, надежные и настраиваемые веб-решения, которые не зависят от браузера, местоположения, устройства или сети.
- Правила кэширования CDN — управление режимом кэширования Azure CDN.
- Поддержка пользовательского домена HTTPS — безопасная доставка конфиденциальных данных при их передаче через Интернет и защита веб-приложений от атак.
- Журналы диагностики Azure — экспорт основных метрик использования из конечной точки CDN в различные типы источников для их последующей настройки.
- Сжатие файлов — увеличение скорости передачи файлов и повышение производительности загрузки страницы за счет уменьшения размера файлов перед их отправкой с сервера.
Следующий
Секция
Кэширование данных баз данных—ArcGIS Insights
Наверх
В этом разделе
- Выбор расположения и имени таблицы кэширования данных
- Жизненный цикл таблицы кэширования данных
Подключения к базам данных поддерживаются в Insights in ArcGIS Enterprise и Insights desktop.
Кэширование данных позволяет ArcGIS Insights создавать и управлять таблицами в управляемой базе данных с целью повышения производительности обработки запросов. Пользователю, создающему подключение к базе данных, должны быть предоставлены все необходимые права доступа к базе данных для запуска кэширования данных.
Кэширование данных не выполняется для Google BigQuery, Snowflake или платформ баз данных, которые не поддерживаются без дополнительной настройки.
Кэширование данных используется только для Пространственной агрегации и Пространственного фильтра.
Данные будут кэшированы, только если выполнены следующие условия:
- Оба источника данных находятся в одном подключении к базе данных.
- Пространственные данные из обоих источников данных хранятся с использованием одинакового пространственного типа.
- Пространственные данные из обоих источников данных хранятся с использованием одинакового пространственного типа.
Выбор расположения и имени таблицы кэширования данных
Таблицы кэширования данных всегда создаются по схеме по умолчанию; для именования этих таблиц используются следующие префиксы:
База данных | Префикс имени таблицы |
---|---|
Microsoft SQL Server, PostgreSQL и SAP HANA | $IN_ Пример: $IN_0xmneL7PT7e4uuE4eL4z7w |
Oracle | T$IN_ Пример: T$IN_A3GZAW7ZRMQNLJP3IRCQAQ |
Другие платформы баз данных | Не применяется |
Таблицы кэширования данных предназначены для внутреннего использования и не доступны для просмотра через подключения к базам данных в Insights.
Жизненный цикл таблицы кэширования данных
Таблицы кэширования данных связаны с наборами данных Insights и рабочими книгами. Отдельный набор данных может относиться к одной или к нескольким таблицам кэширования. Таблицы кэширования данных полностью управляются Insights и удаляются после того, как происходит одно из следующих действий:
- Рабочая книга удалена.
- Удаляются все связанные наборы данных, и рабочая книга снова открывается.
- Связанный набор данных обновляется.*
*В данном случае будет создана новая таблица кэширования данных, содержащая обновленные данные.
Отзыв по этому разделу?
В этом разделе
- Выбор расположения и имени таблицы кэширования данных
- Жизненный цикл таблицы кэширования данных
Что такое кэшированные данные? Почему и как вы должны его очистить?
Калькулятор рентабельности инвестиций
Читать далее
Кэшированные данные — это информация, сохраняемая на вашем компьютере или устройстве после посещения веб-сайта.
Большинство потребителей ожидают, что веб-сайт загрузится в течение двух-трех секунд. Еще немного, и они могли бы перейти к конкуренту. Они могут больше никогда не вернуться на ваш сайт.
Целью кэширования данных является ускорение загрузки сайта. Вашему устройству не придется долго болтать с сервером, чтобы загрузить весь текст, изображения и формы на сайте. Некоторые из этих битов и байтов будут храниться на вашем устройстве.
Но у некоторых из этих сохраненных данных есть и темная сторона. Хакеры могут использовать его для запуска атаки, которая может поставить под угрозу вашу безопасность.
Как работают кэшированные данные?
Думайте о кеше как о хранилище данных веб-сайта, которые вы используете все время. Каждый раз, когда вы посещаете этот веб-сайт, ваше устройство должно получать эту информацию. Если он хранится в кеше, ваше устройство пропускает шаг, и вы экономите драгоценное время.
Вы не можете выбирать, что помещается в кэш. Разработчики делают эту работу за вас, основываясь на том, что, по их мнению, обеспечивает самое быстрое время загрузки и лучший опыт.
Если вы живете в районе с нестабильным доступом в Интернет, кэшированные данные могут быть спасением. Вы можете ждать и ждать, пока загрузится весь сайт. Если часть из них кэшируется, вы можете очень быстро получить нужные биты.
Кэш-память — не единственная форма памяти, которую использует ваш компьютер. На самом деле разработчики используют так называемую иерархию памяти компьютера, чтобы описать, как большинство устройств хранят данные и получают к ним доступ.
Кэшированные данные отличаются от других форм тем, что их можно удалить, выполнив несколько простых действий.
Что сделает очистка кэшированных данных?
В большинстве устройств предусмотрена некоторая форма очистки кэша. Поступают новые данные, а старая информация удаляется. Эта система гарантирует, что ваше устройство не будет загружено таким большим объемом памяти, что оно не сможет справиться с чем-то новым.
Но вы также можете очистить кеш. Общие причины для этого включают:
- Скорость и производительность. Полному кешу нужна память, а если вы заполнены, то переполненная память не работает очень быстро. Очистка отставания может ускорить работу вашего устройства.
- Очистка от взлома. После атаки разработчики могут восстановить работоспособность сайта. Если на вашем устройстве есть кешированная версия неработающего сайта, ее повторный запуск может по-прежнему означать запуск атаки. Подобный скомпрометированный кеш сайта может быть очень опасным.
- Защита конфиденциальности. Кто-то, вошедший на ваше устройство, может увидеть, куда вы пошли и что вы сделали, просматривая ваши кешированные данные. Если вы используете общедоступное устройство, например компьютер в библиотеке, ваш кеш может стать воротами для атаки.
Некоторые пользователи просто никогда не очищают кэшированные данные.
Как очистить кэшированные данные
Веб-сайты хранят информацию на любом устройстве, имеющем доступ в Интернет, включая компьютеры и мобильные устройства. Мы рассмотрим несколько примеров, чтобы помочь вам понять, как навести порядок.
Очистите кеш в распространенных веб-браузерах, таких как:
- Google Chrome. Нажмите на три точки в правом верхнем углу экрана. Откройте «Настройки», затем «Дополнительно», затем «Конфиденциальность и безопасность» и «Очистить данные браузера». Удалите кэшированные изображения и файлы, установив соответствующий флажок.
- Internet Explorer. Коснитесь значка шестеренки и прокрутите до «Свойства обозревателя». Установите флажок «Удалить историю просмотров».
- Сафари. Откройте меню «История» и нажмите «Очистить историю».
- Firefox. Коснитесь трех горизонтальных полос в углу и выберите «Параметры», затем «Конфиденциальность и безопасность». Установите флажок «История просмотров и загрузок».
Может быть немного сложно понять, как очистить кеш на мобильном устройстве. Ваш тип и версия программного обеспечения определяют, как вы будете решать эту задачу. Но в большинстве случаев вы будете следовать одному из двух типов указаний в зависимости от производителя вашего устройства. Если вы используете:
- Apple , перейдите в «Настройки» и выберите свой веб-браузер. Затем нажмите «Очистить историю и данные веб-сайта».
- Android , перейдите в «Настройки», а затем в «Хранилище». Выберите приложение веб-браузера, а затем нажмите «Очистить кэш».
Вы не запретите компьютеру или устройству сохранять больше данных каждый раз, когда вы посещаете другой сайт. Процесс продолжается. Но как только вы привыкнете к шагам, вам будет легко выполнять их по установленному вами расписанию.
Помощь от Okta
Что еще нужно сделать, чтобы защитить свой компьютер и устройства от хакеров? Позвольте нам помочь.
В Okta мы специализируемся на защите данных для больших и малых компаний. Мы будем рады помочь вам. Свяжитесь с нами чтобы узнать больше.
Ссылки
Врум! Почему важна скорость сайта. (май 2017 г.). Предприниматель .
Точка зрения специалиста по безопасности о кэше браузера. Кибер Вож.
Отравление кеша. (апрель 2009 г.). Фонд ОВАСП.
5 распространенных угроз безопасности браузера, как с ними справляться. (апрель 2018 г.). ТехРеспублика.
Как очистить кэш в любом браузере. (август 2019 г.). Журнал ПК.
Очистите историю и файлы cookie из Safari на вашем iPhone, iPad или iPod Touch. Яблоко.
Как, зачем и когда следует очищать кэш приложений или данные на Android. (май 2020 г.). Полиция Андроид.
Что такое кэширование? | Microsoft Azure
Разработчики и ИТ-специалисты используют кэширование для сохранения и доступа к данным типа «ключ-значение» во временной памяти быстрее и с меньшими усилиями, чем данные, хранящиеся в обычном хранилище данных. Кэши полезны в нескольких сценариях с несколькими технологиями, такими как кэширование компьютера с оперативной памятью (ОЗУ), сетевое кэширование в сети доставки контента, веб-кэш для веб-мультимедийных данных или облачный кеш, чтобы помочь сделать облачные приложения более отказоустойчивыми. . Разработчики часто разрабатывают приложения для кэширования обработанных данных, а затем переназначают их для обслуживания запросов быстрее, чем при стандартных запросах к базе данных.
Вы можете использовать кэширование для снижения затрат на базу данных, обеспечения более высокой пропускной способности и меньшей задержки, чем может предложить большинство баз данных, а также для повышения производительности облачных и веб-приложений.
Как кэширование работает для баз данных?
Разработчики могут дополнить первичную базу данных кэшем базы данных, который они могут поместить в базу данных или приложение или настроить как отдельный уровень. Хотя они обычно полагаются на обычную базу данных для хранения больших, надежных и полных наборов данных, они используют кэш для хранения временных подмножеств данных для быстрого поиска.
Вы можете использовать кэширование со всеми типами хранилищ данных, включая базы данных NoSQL, а также реляционные базы данных, такие как SQL Server, MySQL или MariaDB. Кэширование также хорошо работает со многими конкретными платформами данных, такими как База данных Azure для PostgreSQL, База данных SQL Azure или Управляемый экземпляр Azure SQL. Мы рекомендуем изучить, какой тип хранилища данных лучше всего соответствует вашим требованиям, прежде чем вы начнете настраивать архитектуру данных. Например, вы хотели бы понять, что такое PostgreSQL, прежде чем использовать его для объединения реляционных и неструктурированных хранилищ данных.
Преимущества слоев кэша и что такое Redis?
Разработчики используют многоуровневые кэши, называемые уровнями кэша, для хранения различных типов данных в отдельных кэшах в соответствии с требованиями. Добавляя слой кэша или несколько, вы можете значительно улучшить пропускную способность и показатели задержки уровня данных.
Redis — это популярная структура данных в памяти с открытым исходным кодом, используемая для создания высокопроизводительных слоев кэша и других хранилищ данных. Недавнее исследование показало, что добавление кэша Azure для Redis к образцу приложения увеличило пропускную способность данных более чем на 800 % и уменьшило задержку более чем на 1000 %9.0139 1 .
Кэши также могут снизить совокупную стоимость владения (TCO) для уровня данных. Используя кэши для обслуживания наиболее распространенных запросов и снижения нагрузки на базу данных, вы можете снизить потребность в избыточном выделении экземпляров базы данных, что приведет к значительной экономии средств и снижению совокупной стоимости владения.
Типы кэширования
Ваша стратегия кэширования зависит от того, как ваше приложение читает и записывает данные. Ваше приложение требует интенсивной записи или данные записываются один раз и часто считываются? Всегда ли возвращаемые данные уникальны? Различные шаблоны доступа к данным будут влиять на то, как вы настраиваете кэш. К распространенным типам кэширования относятся резервное кэширование, сквозное чтение/сквозная запись и отложенная/обратная запись.
Cache-aside
Для приложений с большими рабочими нагрузками по чтению разработчики часто используют шаблон программирования без кэширования, или «побочный кэш». Они размещают дополнительный кэш за пределами приложения, которое затем может подключаться к кешу для запроса и извлечения данных или напрямую к базе данных, если данных нет в кеше. Когда приложение извлекает данные, оно копирует их в кеш для будущих запросов.
Дополнительный кэш можно использовать для повышения производительности приложений, обеспечения согласованности между кэшем и хранилищем данных и предотвращения устаревания данных в кэше.
Кэш со сквозной записью/чтением
Кэш со сквозной записью постоянно обновляется, а при кэшировании со сквозной записью приложение записывает данные в кеш, а затем в базу данных. Оба кеша находятся на одной линии с базой данных, и приложение рассматривает их как основное хранилище данных.
Кэш сквозного чтения помогает упростить приложения, в которых одни и те же данные запрашиваются снова и снова, но сам кэш сложнее, а двухэтапный процесс сквозной записи может создавать задержки. Разработчики объединяют их, чтобы обеспечить согласованность данных между кешем и базой данных, уменьшить задержку кеша сквозной записи и упростить обновление кеша сквозного чтения.
С помощью кэширования со сквозной записью и чтением разработчики могут упростить код приложения, повысить масштабируемость кэша и минимизировать нагрузку на базу данных.
Кэш отложенной/обратной записи
В этом сценарии приложение записывает данные в кэш, что немедленно подтверждается, а затем сам кеш записывает данные обратно в базу данных в фоновом режиме. Кэши с отложенной записью, иногда называемые кэшами с обратной записью, лучше всего подходят для рабочих нагрузок с интенсивной записью и повышают производительность записи, поскольку приложению не нужно ждать завершения записи, прежде чем переходить к следующей задаче.
Распределенный кэш и хранилище сеансов
Люди часто путают распределенные кэши с хранилищами сеансов, которые похожи, но имеют разные требования и цели. Вместо использования распределенного кеша для дополнения базы данных разработчики реализуют хранилища сеансов, которые являются временными хранилищами данных на пользовательском уровне для профилей, сообщений и других пользовательских данных в приложениях, ориентированных на сеансы, таких как веб-приложения.
Что такое хранилище сеансов?
Приложения, ориентированные на сеанс, отслеживают действия пользователей, когда они вошли в приложения. Чтобы сохранить эти данные при выходе пользователя из системы, вы можете хранить их в хранилище сеансов, что улучшает управление сеансами, снижает затраты и повышает производительность приложений.
Чем использование хранилища сеансов отличается от кэширования базы данных?
В хранилище сеансов данные не распределяются между разными пользователями, а при кэшировании разные пользователи могут получить доступ к одному и тому же кэшу. Разработчики используют кэширование для повышения производительности базы данных или экземпляра хранилища, а хранилища сеансов — для повышения производительности приложений за счет записи данных в хранилище в памяти, что устраняет необходимость доступа к базе данных вообще.
Данные, записанные в хранилище сеансов, обычно недолговечны, а данные, кэшированные в первичной базе данных, обычно предназначены для гораздо более длительного хранения. Хранилище сеансов требует репликации, высокой доступности и надежности данных, чтобы гарантировать, что транзакционные данные не будут потеряны, а пользователи останутся вовлеченными. С другой стороны, если данные в стороннем кеше теряются, их копия всегда есть в постоянной базе данных.
Преимущества кэширования
Улучшенная производительность приложений
Чтение данных из кэша в памяти выполняется намного быстрее, чем доступ к данным из дискового хранилища данных. А благодаря более быстрому доступу к данным общая работа с приложением значительно улучшается.
Сокращение использования базы данных и затрат
Кэширование приводит к меньшему количеству запросов к базе данных, повышению производительности и снижению затрат за счет ограничения необходимости масштабирования инфраструктуры базы данных и снижения платы за пропускную способность.
Масштабируемая и предсказуемая производительность
Один экземпляр кэша может обрабатывать миллионы запросов в секунду, предлагая уровень пропускной способности и масштабируемости, с которым не могут сравниться базы данных. Кэширование также обеспечивает гибкость, которая вам нужна, независимо от того, масштабируете ли вы свои приложения и хранилища данных. Тогда ваше приложение может разрешить нескольким пользователям одновременный доступ к одним и тем же файлам без увеличения нагрузки на серверные базы данных. И если приложение часто испытывает пики использования и высокую пропускную способность, кэши в памяти могут уменьшить задержку.
Для чего используется кэширование?
Кэширование вывода
Кэширование вывода помогает повысить производительность веб-страницы за счет сохранения полного исходного кода страниц, такого как HTML и клиентские сценарии, которые сервер отправляет в браузеры для отображения. Каждый раз, когда пользователь просматривает страницу, сервер кэширует выходной код в памяти приложения. Это позволяет приложению обслуживать запросы без запуска кода страницы или взаимодействия с другими серверами.
Кэширование данных и кэширование базы данных
Скорость и пропускная способность базы данных могут быть ключевыми факторами общей производительности приложения. Кэширование базы данных используется для частых обращений к данным, которые редко меняются, например к данным о ценах или запасах. Это помогает веб-сайтам и приложениям загружаться быстрее, увеличивая пропускную способность и снижая задержку при извлечении данных из серверных баз данных.
Сохранение данных сеанса пользователя
Пользователи приложений часто создают данные, которые необходимо хранить в течение коротких периодов времени. Хранилище данных в памяти, такое как Redis, идеально подходит для эффективного и надежного хранения больших объемов данных сеанса, таких как пользовательский ввод, записи в корзине покупок или настройки персонализации, при меньших затратах, чем хранение или базы данных.
Брокеры сообщений и архитектуры публикации/подписки
Облачным приложениям часто необходимо обмениваться данными между службами, и они могут использовать кэширование для реализации архитектур публикации/подписки или брокера сообщений, которые уменьшают задержку и ускоряют управление данными.
Приложения и API
Как и браузеры, приложения сохраняют важные файлы и данные для быстрой перезагрузки этой информации при необходимости. Кэшированные ответы API устраняют потребность или нагрузку на серверы приложений и базы данных, обеспечивая более быстрое время отклика и лучшую производительность.
1 Заявления о производительности основаны на данных исследования, которое было заказано Microsoft и проведено GigaOm в октябре 2020 года. В исследовании сравнивалась производительность тестового приложения с использованием базы данных Azure с реализацией кэширования Azure для Redis и без нее. решение. В качестве элемента базы данных в исследовании использовались База данных SQL Azure и База данных Azure для PostgreSQL. Экземпляр базы данных SQL Azure общего назначения с 2 виртуальными ядрами Gen5 и экземпляр базы данных Azure общего назначения с 2 виртуальными ядрами для PostgreSQL использовались с 6-гигабайтным экземпляром P1 Premium Azure для Redis. Эти результаты сравнивались с 8, 16, 24 и 32 экземплярами виртуального ядра Gen5 общего назначения базы данных SQL Azure и 8, 16, 24 и 32 экземплярами виртуального ядра общего назначения базы данных Azure для PostgreSQL без кэша Azure для Redis. Эталонные данные взяты из нагрузочного теста базы данных веб-приложения GigaOm, который имитирует обычное веб-приложение и серверную базу данных, которые заблокированы увеличением количества HTTP-запросов.