Яка повна назва Redis RDB? Режим збереження даних пам’яті Redis RDB

Повна назва RDBRedis database.

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

Яка повна назва Redis RDB? Режим збереження даних пам’яті Redis RDB

Усі операції Redis на початку базуються на пам’яті, тому продуктивність дуже висока, але після закриття програми дані втрачаються.

Тому нам потрібно записувати дані з пам’яті на диск через певні проміжки часу, що на жаргоні означає «миттєвий знімок».

Під час відновлення файл знімка записується безпосередньо в пам'ять.

Це також одна з головних відмінностей між Redis і Memcached, оскільки Memcached не має можливості збереження даних.

Для збереження даних пам’яті Redis Redis надає нам такі методи:

  • Метод знімка (RDB, Redis DataBase): запис даних пам’яті на диск у двійковій формі в певний момент;
  • Додати лише файл (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 (фонове збереження) — фонове збереження.
  • Найбільша різниця між нею та командою save полягає в тому, що bgsave розгалужує дочірній процес для збереження.
  • Весь процес відбувається лише тоді, коли дочірній процес є fork.Є лише коротка блокада.
  • Після створення дочірнього процесу основний процес 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 один раз.

Примітка: якщо встановлено кілька команд save mn, будь-яка одна умова ініціюватиме збереження.

Наприклад, ми встановлюємо такі дві команди save 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, коли підлеглий вузол виконує повну операцію реплікації, головний вузол виконає команду 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. Використовуйте параметри командного рядка, каталог налаштувань "/usr/data" є командою збереження для зміни файлу RDB

Примітка. Конфігурацію в redis.conf можна отримати за допомогою config get xxx і змінити за допомогою config set xxx value, і метод ручної зміни файлу конфігурації 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 автоматично завантажить і відновить дані під час запуску.

RDB плюси і мінуси

1) Переваги RDB

Вміст RDB є двійковими даними, займає менше пам’яті, є більш компактним і більше підходить як файл резервної копії;

RDB дуже корисний для аварійного відновлення, це стислий файл, який можна швидше передати на віддалений сервер для відновлення служби Redis;

RDB може значно підвищити швидкість Redis, оскільки головний процес Redis розгалужує дочірній процес, щоб зберігати дані на диску.

Головний процес Redis не виконує таких операцій, як введення/виведення диска;

Порівняно з файлами формату AOF файли RDB перезапускаються швидше.

2) Недоліки RDB

Оскільки RDB може зберігати дані лише через певний проміжок часу, якщо служба Redis випадково припиняється посередині, дані Redis будуть втрачені на певний період часу;

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

Якщо набір даних великий, розгалуження може зайняти багато часу, а якщо набір даних великий, продуктивність процесора низька, що може призвести до того, що Redis не зможе обслуговувати клієнтів протягом кількох мілісекунд або навіть секунди.

Звичайно, ми також можемо вимкнути постійність, щоб підвищити ефективність виконання Redis.

Якщо ви не чутливі до втрати даних, ви можете зробити це під час підключення клієнта config set save "" Команда для вимкнення збереження для Redis.

redis.conf, якщо вsaveЗакоментуйте всі конфігурації на початку, і постійність також буде вимкнено, але зазвичай це не робиться.

Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) поділився «Як повна назва Redis RDB? Redis RDB In-Memory Data Persistence Operation Mode, який буде корисним для вас.

Ласкаво просимо поділитися посиланням на цю статтю:https://www.chenweiliang.com/cwl-26677.html

Ласкаво просимо до каналу Telegram у блозі Чень Вейляна, щоб отримувати останні оновлення!

🔔 Станьте першим, хто отримає цінний «Посібник із використання інструменту штучного інтелекту маркетингу контенту ChatGPT» у верхньому каталозі каналу! 🌟
📚 Цей посібник має величезну цінність. 🌟Це рідкісна можливість, не пропустіть її! ⏰⌛💨
Поділіться та вподобайте, якщо вам подобається!
Ваші публікації та лайки є нашою постійною мотивацією!

 

发表 评论

Ваша електронна адреса не буде опублікована. 必填 项 已 用 * Етикетка

прокрутіть наверх