Немного знаний о Redis

1.Redis можно использовать в следующих сценариях:

  1. Кэширование: Redis принимает и обрабатывает запросы данных кэша и сохраняет данные в памяти, тем самым увеличивая скорость извлечения данных.

  2. Распределенные блокировки: Redis предоставляет возможности распределенной блокировки, которые могут легко решить проблемы безопасности потоков.

  3. Очередь сообщений: Redis предоставляет функцию очереди сообщений, которую можно использовать в асинхронной обработке и других сценариях.

  4. Счетчик: Redis может использовать операции самоувеличения и самоуменьшения в качестве счетчиков, что позволяет быстро реализовать функции счетчика.

  5. Онлайн-приложения: Redis имеет отличную производительность, может хранить «горячие» данные и часто используется в онлайн-приложениях.

2. Проникновение кэша, разрушение кэша и лавина кэша.

  1. Проникновение в кэш: относится к запросу данных, которые не должны существовать. Поскольку в кэше нет соответствующих данных, доступ к базе данных будет осуществляться каждый раз при выполнении запроса, что приводит к чрезмерной нагрузке на базу данных. Решение состоит в том, чтобы добавить фильтр Блума при запросе запроса для фильтрации несуществующих данных.

  2. Поломка кэша: относится к сбою определенных данных горячей точки в условиях высокого параллелизма, что приводит к большому количеству запросов на доступ к базе данных и увеличению нагрузки на базу данных. Решение — установить короткий срок действия, использовать распределенные блокировки и т. д.

  3. Лавина кэша: относится к большому количеству ключей в кэше, срок действия которых истекает одновременно, что приводит к большому количеству запросов на доступ к базе данных и увеличению нагрузки на базу данных. Решение состоит в том, чтобы установить разные сроки действия, резервное копирование данных и т. д.

3. Проблема согласованности кэша

  1. Что такое проблема согласованности кэша

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

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

  1. Причины проблем с согласованностью кэша

Проблемы согласованности кэша в основном вызваны следующими причинами:

(1) Задержка синхронизации кэша и базы данных.

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

(2) Данные в кэше неправильно обновляются или удаляются.

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

(3) Несогласованность данных, вызванная одновременными обновлениями.

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

     2.Решение проблемы согласованности кэша

Для решения проблемы согласованности кэша обычно используются следующие два решения:

(1) Используйте стратегию обновления кэша.

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

Общие стратегии обновления включают «режим чтения-записи», «режим чтения после записи», «режим отказа» и т. д.

(2) Используйте механизм блокировки кэша.

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

4. Стратегия настойчивости

  1. Что такое стратегия настойчивости

При использовании Redis данные необходимо сохранять на диске, чтобы предотвратить потерю данных. Redis предоставляет две стратегии сохранения: сохранение RDB и сохранение AOF.

(1) Сохранение RDB

Сохранение RDB сохраняет данные Redis на диск в виде снимков в течение определенного интервала времени. Если данные необходимо восстановить, их можно восстановить с диска, загрузив файл RDB. Сохранение RDB — это компактный, высокопроизводительный метод сохранения, который подходит для сценариев, в которых обновляются большие объемы данных или регулярно выполняется резервное копирование данных.

(2) Постоянство АОФ

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

  1. Как добиться настойчивости

(1) Реализация постоянства RDB

Сохранение RDB реализуется путем установки команды сохранения в файле конфигурации Redis.conf. Команда сохранения имеет два параметра: первый параметр представляет интервал времени в секундах, а второй параметр представляет номер выполнения, что означает, что операция сохранения выполняется после выполнения указанного количества команд записи в течение указанного интервала времени.

Например, установка save 900 1 означает, что если хотя бы одна операция записи выполняется каждые 900 секунд, данные будут сохранены один раз.

(2) Реализация постоянства AOF

Сохранение AOF реализуется путем установки для параметра addonly значения yes в файле конфигурации Redis.conf. После установки каждая команда записи будет добавлена ​​в конец файла AOF.

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

Supongo que te gusta

Origin blog.csdn.net/Flying_Fish_roe/article/details/134823138
Recomendado
Clasificación