Какво е пълното име на 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): запис на данни от паметта на диска в двоична форма в определен момент;
  • Добавете само файл (AOF, добавете само файл), запишете всички команди за работа и добавете към файла в текстова форма;
  • Хибридно постоянство, нов метод след Redis 4.0, хибридното постоянство съчетава предимствата на RDB и AOF.Когато пишете, първо запишете текущите данни в началото на файла под формата на RDB и след това запазете последващите команди за работа във файла под формата на AOF, което може не само да осигури скоростта на рестартиране на Redis, но и да намали рискът от загуба на данни.

Тъй като всяка схема за постоянство има специфични сценарии на използване.

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

  • RDB (Redis DataBase) е процес на запис на моментна снимка на паметта (Snapshot) в определен момент на диск в двоична форма.
  • Моментните снимки на паметта са това, което казахме по-горе.Отнася се до записа на състоянието на данните в паметта в определен момент.
  • Това е подобно на правенето на снимка Когато направите снимка на приятел, снимката може незабавно да запише всички изображения на приятеля.
  • Има два начина за задействане на RDB: единият е ръчно задействане, а другият е автоматично задействане.

Ръчно задействайте RDB

Има две операции за ръчно задействане на постоянството:savebgsave.

Основната разлика между тях е дали да се блокира или не изпълнението на основната нишка на 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 persistence.

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 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 не изпълнява операции като I/O на диска;

В сравнение с файлове във формат 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 в блога на Chen Weiliang, за да получите най-новите актуализации!

🔔 Бъдете първите, получили ценното „Ръководство за използване на инструмента за изкуствен интелект за маркетинг на съдържание ChatGPT“ в горната директория на канала! 🌟
📚 Това ръководство съдържа огромна стойност, 🌟Това е рядка възможност, не я пропускайте! ⏰⌛💨
Споделете и харесайте, ако ви харесва!
Вашите споделяния и харесвания са нашата постоянна мотивация!

 

发表 评论

Вашият имейл адрес няма да бъде публикуван. Използват се задължителните полета * Етикет

превъртете до върха