написать впереди
спереди"[Высокая степень параллелизма] Как Redis помогает системе всплесков высокой степени параллелизма? Прочитав это, я все понял! !«В этой статье мы берем сценарий вычета запасов в системе шипов с высокой степенью параллелизма в качестве примера, чтобы проиллюстрировать, как Redis помогает системе шипов. Затем, когда дело доходит до Redis, в качестве кеша системы часто используется больше сценариев.Когда дело доходит до кеша, особенно системы распределенного кеша, в фактическом сценарии с высоким параллелизмом небольшая небрежность приведет к проникновению в кеш и кешу. с лавинами поломок и кеша. Так что же такое проникновение в кеш? Что такое разбивка кеша и что такое лавина кеша? Как они вызываются? Как это решить? Сегодня мы вместе обсудим эти вопросы.
проникновение в кеш
Во-первых, давайте поговорим о проникновении в кеш. Что такое проникновение в кеш? Проблема проникновения в кеш частично связана с частотой попаданий в кеш. Если наш дизайн кэша неразумен, а частота попаданий в кэш очень низкая, то большая часть нагрузки на доступ к данным будет сосредоточена на уровне серверной базы данных.
Что такое проникновение в кеш?
Если при запросе данных на уровне кэша и уровне базы данных не найдено квалифицированных данных, то есть нет данных о попаданиях на уровне кэша и уровне базы данных, то такая ситуация называется проникновением в кэш.
Мы можем использовать следующую диаграмму, чтобы представить явление проникновения в кэш.
Основной причиной проникновения в кеш является запрос данных, соответствующих определенному ключу.Если в кеше Redis нет соответствующих данных, они запрашиваются непосредственно в базе данных. Если запрашиваемые данные не существуют в базе данных, база данных будет пустой, и Redis не будет кэшировать этот пустой результат. Это приводит к тому, что каждый раз, когда данные запрашиваются через такой ключ, они будут напрямую запрашиваться в базе данных, и Redis не будет кэшировать пустые результаты. Это создает проблему проникновения в кеш.
Как решить проблему проникновения в кеш?
Теперь, когда мы знаем, что основная причина проникновения в кеш заключается в том, что в кеше нет соответствующих данных, мы напрямую запрашиваем базу данных, база данных возвращает пустые результаты, а пустые результаты не сохраняются в кеше.
Тогда мы, естественно, подумали о первом решении: кешировать пустые объекты. Когда результат, запрошенный из базы данных в первый раз, окажется пустым, мы загрузим пустой объект в кеш и установим разумное время истечения срока действия, чтобы можно было в определенной степени гарантировать безопасность серверной базы данных.
Второе решение проблемы проникновения в кеш — использование фильтров Блума, которые могут обрабатывать обычные значения ключей с большими объемами данных. Независимо от того, существует запись или нет, это, по сути, логическое значение, которое можно сохранить, используя только 1 бит. Мы можем использовать фильтр Блума, чтобы сжать это представление «да», «нет» и т. д. в структуру данных. Например, наиболее знакомые нам данные о поле пользователя очень хорошо подходят для обработки фильтрами Блума.
разбивка кеша
Если мы установим одинаковое время истечения для большей части данных в кеше, в определенный момент данные в кеше будут устаревать партиями.
Что такое разбивка кеша?
Если срок хранения данных в кеше истекает пачками в определенное время, то большая часть запросов пользователя будет попадать непосредственно в базу данных, это явление называется сбоем кеша.
Мы можем использовать следующую диаграмму, чтобы представить поток разбивки кэша.
Основная причина поломки кеша заключается в том, что мы устанавливаем время истечения срока действия данных в кеше. Если в определенное время из базы данных получен большой объем данных и установлено одинаковое время истечения срока действия, кэшированные данные одновременно станут недействительными, что вызовет проблему сбоя кеша.
Как решить проблему сбоя кеша?
Для горячих данных мы можем установить, чтобы данные в кеше никогда не истекали; мы также можем обновлять время истечения срока действия данных в кеше при доступе к данным; если это пакет элементов кеша, мы можем установить элементы кеша для этим элементам кэша назначается разумное время истечения срока действия, чтобы одновременно избежать аннулирования.
Другим решением является использование распределенных блокировок, чтобы гарантировать, что только один поток будет одновременно запрашивать у серверной службы каждый ключ. Однако в сценариях с высокой степенью параллелизма это решение имеет относительно высокое давление доступа к распределенным блокировкам.
Кэш Лавина
Если система кэширования выходит из строя, весь параллельный трафик направляется непосредственно в базу данных.
Что такое кэш-лавина?
Если в какой-то момент происходит сбой набора кэшей или система кэширования, весь параллельный трафик направляется непосредственно в базу данных. Объем вызовов уровня хранения данных резко возрастет, и база данных не займет много времени, чтобы быть перегруженным интенсивным трафиком.Этот каскадный сбой службы называется лавиной кэша.
Мы можем использовать следующую диаграмму, чтобы представить явление лавины кеша.
Основная причина лавины кеша — это централизованный сбой кеша или сбой службы кеша, а мгновенный большой одновременный трафик перегружает базу данных.
Как решить проблему лавины кеша?
Одним из наиболее распространенных решений проблемы лавинного кеша является обеспечение высокой доступности Redis.Развертывание кеша Redis в виде кластера высокой доступности (при необходимости несколько действий в разных местах) может эффективно предотвратить возникновение проблемы лавинного кеша.
Чтобы уменьшить большой одновременный трафик, мы также можем предотвратить лавины кеша, используя ограничение тока и понижение версии. Например, после того как кеш становится недействительным, количество потоков, читающих базу данных и записывающих в кеш, можно контролировать с помощью блокировки или использования очереди. Конкретный момент заключается в том, чтобы установить некоторые ключи, чтобы разрешить только одному потоку запрашивать данные и записывать в кеш, а другим потокам ждать. Это может эффективно смягчить огромное влияние большого параллельного трафика на базу данных.
Кроме того, мы также можем получить доступ к большому количеству возможных данных, предварительно нагрев, способ, которым данные загружаются в кэш, одновременно доступом в то время, когда надвигающийся аванс запускается вручную загрузки разных данных в кэш, и установить разные данные срока действия, Дайте кэш точке аннулирования во времени как можно даже максимально, и не все не удается одновременно.
Тяжелые преимущества
Сфокусируйся на"Ледниковая технология«Официальный аккаунт WeChat, закулисный ответ»Шаблоны проектирования"Ключевые слова для получения"23 шаблона проектирования в Java"Документы в формате PDF. Отвечать"Java8«Сборник ключевых слов»Учебник по новым возможностям Java8"Документы в формате PDF. Отвечать"Ограничение«Приобретение ключевых слов»Распределенное решение для ограничения тока до уровня трафика 100 миллионов》Документы в формате PDF, все три PDF-файла представляют собой сверхсложные учебные пособия, изначально созданные и организованные Glacier, что необходимо для собеседований! !
Ну вот и все на сегодня! Не забывайте ставить лайки, смотреть и пересылать дальше, чтобы больше людей могли видеть, учиться и прогрессировать вместе! !
напиши в конце
Если вы считаете, что Бинхэ пишет неплохо, выполните поиск в WeChat и подпишитесь на "Ледниковая технология«Официальная учетная запись WeChat, узнайте о высоких параллелизмах, распределенных микросервисах, больших данных, Интернете и облачных технологиях от Glacier»,Ледниковая технология«Официальный аккаунт WeChat обновил большое количество технических тем, и каждая техническая статья полна галантереи! Многие читатели уже прочитали »Ледниковая технология«Статья в официальном аккаунте WeChat дала пощечину интервьюеру и успешно перескочила на большой завод; также есть много читателей, которые совершили технологический скачок и стали техническим костяком компании! Если вы тоже хотите улучшить свои способности, как они, совершить скачок в технических возможностях, поступить на большой завод, получить повышение и прибавку к зарплате, то обратите внимание на "Ледниковая технология«Официальная учетная запись WeChat, ежедневно обновляйте галантерею суперхардкорных технологий, чтобы вы больше не запутались в том, как улучшить свои технические способности!