Какое полное название Redis RDB? Режим сохранения данных в памяти Redis RDB

Полное название RDB:Redis database.

  • Как следует из названия, RDB — это база данных Redis, используемая для хранения данных.
  • Таким образом, благодаря сохраняемости RDB данные, хранящиеся в памяти Redis, записываются в файл RDB и сохраняются на диск для достижения устойчивости.
  • Особенностью Redis является то, что он может сохранять данные, то есть записывать данные из памяти на диск, чтобы гарантировать, что данные не будут потеряны, а также может загружать данные с диска в память.

Какое полное название Redis RDB? Режим сохранения данных в памяти Redis RDB

Вначале все операции Redis основаны на памяти, поэтому производительность очень высока, но как только программа закрывается, данные теряются.

Следовательно, нам нужно записывать данные в памяти на диск через определенные промежутки времени, что на жаргоне называется моментальным снимком.

При восстановлении файл моментального снимка записывается непосредственно в память.

Это также одно из основных различий между Redis и Memcached, потому что у Memcached нет возможности сохранения.

Для сохранения данных памяти Redis Redis предоставляет нам следующие методы:

  • Метод моментальных снимков (RDB, Redis DataBase): запись данных памяти на диск в бинарном виде в определенный момент;
  • Append Only File (AOF, Append Only File), запись всех рабочих команд и добавление к файлу в текстовом виде;
  • Гибридное сохранение, новый метод после Redis 4.0, сочетает в себе преимущества RDB и AOF.При записи сначала записывайте текущие данные в начало файла в виде RDB, а затем сохраняйте последующие команды операций в файл в виде AOF, что может не только обеспечить скорость перезапуска Redis, но и уменьшить риск потери данных.

Потому что каждая схема сохранения имеет определенные сценарии использования.

Режим сохранения данных в памяти Redis RDB

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

Вручную запустить RDB

Существует две операции для ручного запуска сохраняемости:saveИbgsave.

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

1. сохранить команду

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

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Процесс выполнения команды показан на рисунке 

2. команда bgsave

  • bgsave (фоновое сохранение) — фоновое сохранение.
  • Самая большая разница между ней и командой сохранения заключается в том, что bgsave разветвляет дочерний процесс для обеспечения сохранения.
  • Весь процесс происходит только тогда, когда дочерний процесс является разветвленным.Есть только кратковременная блокировка.
  • После создания дочернего процесса основной процесс Redis может отвечать на запросы других клиентов.

с блокировкой всего процессаsaveпо сравнению с командойbgsaveКоманда явно больше подходит для использования.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

Автоматически запускать RDB

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

1. сохранить мн

  • save mn означает, что в течение m секунд при изменении n ключей автоматически срабатывает постоянство.Параметры m и n можно найти в файле конфигурации Redis.
  • Например, сохранение 60 1 означает, что в течение 60 секунд при изменении одного ключа будет активирована сохраняемость RDB.
  • Суть автоматического запуска сохранения заключается в том, что при выполнении заданных условий запуска Redis автоматически выполнит команду bgsave один раз.

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

Например, мы устанавливаем следующие две команды сохранения mn:

save 60 10
save 600 20
  • Когда значение ключа Redis изменяется 60 раз в течение 10 секунд, срабатывает постоянство;
  • Если ключ Redis изменяется в течение 60 с и если значение изменяется менее 10 раз, Redis определит, был ли ключ Redis изменен не менее 600 раз в течение 20 с, и, если да, активирует постоянство.

2. Флашолл

  • Команда flushall используется для очистки базы данных Redis.
  • Его следует использовать с осторожностью в производственной среде.
  • Когда Redis выполняет команду flushall, он запускает автоматическое сохранение и очищает файлы RDB.

3. Триггер синхронизации ведущий-ведомый

В репликации Redis master-slave, когда подчиненный узел выполняет операцию полной репликации, главный узел выполняет команду bgsave для отправки файла RDB на подчиненный узел.Этот процесс автоматически запускает сохраняемость Redis.

Redis может запрашивать текущие параметры конфигурации с помощью команд.

Формат команды запроса:config get xxx

Например, если вы хотите получить настройку имени хранилища файла RDB, вы можете использовать config get dbfilename .

Эффект от исполнения следующий:

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

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

Если вы хотите вручную удалить файл кеша RDB dump.rdb Redis, вы можете использовать следующую команду, чтобы найти путь к хранилищу файла dump.rdb ▼

find / -name dump.rdb
  • Затем вручную удалите файл кэша dump.rdb через SSH.

Redis устанавливает конфигурацию RDB

Что касается настройки конфигурации RDB, вы можете использовать следующие два способа:

  1. Вручную изменить файл конфигурации Redis
  2. Используйте настройки командной строки, config set dir "/usr/data" - это команда хранилища для изменения файла RDB.

Примечание. Конфигурацию в redis.conf можно получить с помощью config get xxx и изменить с помощью значения config set xxx, а метод ручного изменения файла конфигурации Redis действует глобально, то есть параметры, установленные при перезапуске сервера Redis, не будут быть потеряны, но изменены с помощью команды , они будут потеряны после перезапуска Redis.

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

Восстановление RDB-файла

При запуске сервера Redis, если файл RDB dump.rdb существует в корневом каталоге Redis, Redis автоматически загрузит файл RDB для восстановления постоянных данных.

Если в корневом каталоге нет файла dump.rdb, переместите файл dump.rdb в корневой каталог Redis.

Конечно, есть информация журнала при запуске Redis, которая покажет, загружен ли файл RDB.

Сервер Redis блокируется при загрузке файла RDB до завершения загрузки.

Теперь мы знаем, что персистентность RDB делится на два способа: ручной запуск и автоматический запуск:

  1. Его преимущество в том, что файл хранилища небольшой, а восстановление данных происходит быстрее при запуске Redis.
  2. Недостатком является то, что существует риск потери данных.

Восстановление файлов RDB также очень просто: просто поместите файлы RDB в корневой каталог Redis, и Redis автоматически загрузит и восстановит данные при запуске.

Плюсы и минусы РБД

1) Преимущества РБД

Содержимое RDB — двоичные данные, которые занимают меньше памяти, более компактны и больше подходят в качестве файла резервной копии;

RDB очень полезен для аварийного восстановления, это сжатый файл, который можно быстрее передать на удаленный сервер для восстановления службы Redis;

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

Основной процесс Redis не выполняет такие операции, как дисковый ввод-вывод;

По сравнению с файлами формата AOF файлы RDB перезапускаются быстрее.

2) Недостатки РБД

Поскольку RDB может сохранять данные только через определенные промежутки времени, если служба Redis будет случайно прервана в середине, данные Redis будут потеряны на определенный период времени;

Процесс, в котором RDB требует частых разветвлений, чтобы сохранить его на диске с помощью подзаписи.

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

Конечно, мы также можем отключить сохраняемость, чтобы повысить эффективность выполнения Redis.

Если вы не чувствительны к потере данных, вы можете сделать это при подключении клиента config set save "" Команда для отключения сохранения для Redis.

redis.conf, если вsaveЗакомментируйте все конфигурации в начале, и постоянство тоже будет отключено, но это обычно не делается.

Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ ) поделился «Каково полное имя Redis RDB? Redis RDB In-Memory Data Persistence Operation Mode».

Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-26677.html

Добро пожаловать на Telegram-канал блога Chen Weiliang, чтобы быть в курсе последних обновлений!

🔔 Будьте первым, кто получит ценное «Руководство по использованию инструмента искусственного интеллекта для контент-маркетинга ChatGPT» в верхнем каталоге канала! 🌟
📚 Это руководство содержит огромную ценность. 🌟Это редкая возможность, не упустите ее! ⏰⌛💨
Делитесь и ставьте лайк, если хотите!
Ваш обмен и лайки - наша постоянная мотивация!

 

发表 评论

Ваш электронный адрес не будет опубликован. 必填 项 已 用 * 标注

滚动 到 顶部