Распределенный и постоянный для работы с массивными данными и высоким уровнем параллелизма
В ранней версии redis официальный поддерживает только одну машину или простой ведущий-ведомый. Большинство приложений предназначены для самостоятельной разработки промежуточного программного обеспечения кластера. Однако по мере того, как приложения становятся все более и более обширными, голос пользователей о распространении становится все выше и выше. Поэтому в версии redis 3.0 чиновник добавил распределенную поддержку, в основном в двух аспектах:
Горячий режим ожидания ведущего и ведомого сервера Redis обеспечивает стабильность системы
Фрагменты Redis для массивных данных и высокой параллелизацией
И хотя redis является кэшем памяти, данные существуют в памяти, но redis поддерживает множество способов сохранения данных и записи их на жесткий диск. Все они, стабильность данных redis также очень гарантирована. В сочетании со схемой кластера redis некоторые системы применяют redis в качестве хранилища данных NoSQL.
Пример: комбинация seckill и redis
Seckill-это распространенный маркетинговый режим в интернет-системе. Как разработчик, он является последним, кто занимается такой деятельностью. Поскольку нетехнический персонал не может понять технические трудности, всегда существуют некоторые отклонения в координации ресурсов. Общие проблемы seckill включают в себя:
Слишком высокий уровень параллелизма приводит к блокировке программы.
Запасы невозможно эффективно контролировать, и возникает перепроданность.
На самом деле, существует в основном два решения этих проблем:
Данные должны быть как можно больше кэшированы, чтобы блокировать прямое взаимодействие между пользователями и базой данных.
Зафиксируйте, чтобы избежать перепроданности.
Теперь давайте объясним, как redis можно использовать в комбинации, если вы хотите совершить второе убийство прямо сейчас?
Заранее разогрейте данные и поместите их в redis
Поместите список товаров в список redis
Подробные данные о товарах сохраняются в хэше redis, и устанавливается время истечения срока действия
Повторно отсортированный набор сохранение данных инвентаризации товаров
Сохраните адресную информацию пользователя в наборе redis
Запасы, сгенерированные по заказу, вычитаются с помощью распределенной блокировки redis manufacturing, и запасы вычитаются синхронно
После создания заказа данные об отправке генерируются в список redis, который обрабатывается через очередь сообщений
После завершения проверки синхронизируйте данные redis с базой данных
Выше приведена простая схема, сочетающая систему seckill и redis. Конечно, на практике может быть введен кэш HTTP, или MQ может использоваться для замены стыковки сообщений, что также может привести к бизнес-упущению. Это просто надежда на то, что мы сможем извлечь уроки из опыта других.
Каждая технология имеет свои собственные сценарии применения. Только при четком понимании характеристик технологии мы можем лучше использовать технологию и в полной мере использовать ее величайшие преимущества.