Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 24125|Отговор: 2

[Редис] Разлика в устойчивостта на Redis между RDB и AOF

[Копирай линк]
Публикувано в 4.02.2021 г. 13:47:27 ч. | | | |
Redis Windows 64-битово изтегляне, официален адрес за изтегляне
https://www.itsvse.com/thread-2576-1-1.html

Redis има три начина за начало
https://www.itsvse.com/thread-4008-1-1.html

Разликата между save и bgsave в redis
https://www.itsvse.com/thread-4010-1-1.html

Урок за инсталация на CentOS 7 Redis 5.0.3
https://www.itsvse.com/thread-7201-1-1.html


1. Предговор

Напоследък Redis се използва като кеш в проекта за улесняване на споделянето на данни между множество бизнес процеси. Тъй като данните на Redis се съхраняват в паметта, ако не е конфигурирана персистентност, всички данни ще се загубят след рестарт на Redis, затова трябва да активирате функцията за запазване на Redis на диска, а когато Redis се рестартира, можете да възстановите данните от диска. Redis предлага два начина за запазване – RDB персистентност (принципът е да се изхвърлят записите на Reids в паметта към RDB persistence на диска) и другият е AOF persistence (принципът е да се записват оперативните логове на Reids във файл под формата на приложение). Каква е разликата между тези два метода за устойчивост и как да изберем да я променим? Повечето неща, които чета в интернет, въвеждат как да се конфигурират и използват тези два метода, но няма въведение в разликата между тях и в какви приложения да се използват.


2. Разликата между двете

RDB устойчивостта се отнася до записване на моментна снимка на набора от данни в паметта на диск в определен времеви интервал, а реалният оперативен процес е да се форкне на подпроцес, първо да се запише набора от данни във временен файл, след което предишният файл след успешно записване и да се съхранява чрез двоична компресия.



Персистентността на AOF записва всяка операция по запис и изтриване, обработена от сървъра под формата на лог, и операцията за заявка няма да се записва, а ще бъде записана в текст, като можете да отворите файла, за да видите подробния оперативен запис.



3. Предимства и недостатъци на двете

Какви са предимствата на RDB?

1). След като това се използва, цялата ви Redis база данни ще съдържа само един файл, което е идеално за архивиране на файлове. Например, може да искате да архивирате последните 24 часа на всеки час, както и последните 30 дни всеки ден. С такава резервна стратегия можем лесно да се възстановим в случай на катастрофален провал на системата.

2). RDB е много добър избор за възстановяване след бедствия. Защото лесно можем да компресираме един файл и да го прехвърлим на друг носител.

3). Максимизирайте представянето. За Redis Service процеса единственото, което трябва да направи при стартиране на персистентността, е да отдели дъщерните процеси, а след това дъщерните процеси ще изпълнят тези задачи, което значително може да предотврати извършването на IO операции от сервизния процес.

4). В сравнение с механизма на AOF, ако наборът от данни е голям, ефективността при стартиране на RDB ще бъде по-висока.

Какви са недостатъците на RDB?

1). Ако искате да осигурите висока наличност на данни, т.е. да избегнете максимална загуба на данни, тогава RDB няма да е добър избор. Защото след като системата спре преди планираната устойчивост, данните, които преди това са били записани на диска, ще бъдат загубени.

2). Тъй като RDB подпомага запазването на данните чрез fork подпроцеси, ако наборът от данни е голям, това може да накара целият сървър да спре обслужването за стотици милисекунди или дори за 1 секунда.

Какви са предимствата на AOF?

1). Този механизъм може да донесе по-голяма сигурност на данните, т.е. запазване на данните. В Redis са предоставени 3 стратегии за синхронизация, а именно синхронизация в секунда, синхронизация при модификация и десинхронизация. Всъщност синхронизацията в секунда също се извършва асинхронно, а ефективността ѝ също е много висока; разликата е, че след като системата спре, модифицираните данни се губят в рамките на тази секунда. И всеки път, когато се синхронизира модификация, можем да я възприемем като устойчивост на синхронизацията, тоест всяка промяна в данните, която се случи, се записва веднага на диска. Предвидимо е, че този метод е най-малко ефективен. Що се отнася до липсата на синхронизация, няма нужда да се казва повече, мисля, че всеки може да разбере правилно.

2). Тъй като механизмът използва режим на добавяне за записване на лог файлове, дори ако има прекъсване по време на писането, съдържанието, което вече съществува в лог файла, няма да бъде унищожено. Въпреки това, ако запишем само половината от данните и системата се срине този път, не се притеснявайте, можем да използваме инструмента redis-check-aof, за да решим проблема с консистентността на данните преди следващото стартиране на Redis.

3). Ако дневникът е твърде голям, Redis може автоматично да активира механизма за пренаписване. Тоест, Redis непрекъснато записва данните за модификация в стария дисков файл в режим на приложение, а Redis също така създава нов файл, за да записва кои команди за модификация се изпълняват през този период. Затова сигурността на данните може да бъде по-добре гарантирана при превключване между пренаписвания.

4). AOF съдържа ясен, лесен за разбиране лог файл, който записва всички модификации. Всъщност можем да завършим реконструкцията на данните чрез този файл.

Какви са недостатъците на OV?

1). За същия брой набори от данни, OF файловете обикновено са по-големи от RDB файловете. RDB възстановява големи набори от данни по-бързо от AOF.

2). В зависимост от стратегията за синхронизация, AOF обикновено е по-бавен от RDB по отношение на ефективността на работа. Накратко, ефективността на политиката за синхронизация в секунда е сравнително висока, а ефективността на политиката за синхронно изключване е толкова ефективна, колкото и тази на RDB.

Критериите за избор на двете са дали системата е готова да жертва част от производителността в замяна на по-висока кеш консистентност (AOF), или дали е склонна да не позволява резервни копия в замяна на по-висока производителност, когато операциите по писане са чести, а след това да прави резервни копия (RDB) при ръчно изпълнение на Запазване. RDB има по-окончателно и последователно значение. Въпреки това, производствената среда всъщност е по-скоро комбинация от двете.


4. Общи конфигурации

Конфигурация на RDB персистентност

Redis изхвърля снимка на набора от данни в dump.rdb файла. Освен това можем да променяме честотата на снимките на Redis сървъра чрез конфигурационния файл, след като отворим файла 6379.conf, търсим save и виждаме следната конфигурационна информация:



AOF постоянна конфигурация

Има три начина за синхронизация в профила на Redis, те са:



Пълна конфигурация:



Ще бъде създаден нов файл "appendonly.aof" под тестовата директория, както следва:





Предишен:DataTables реализира експортиране на таблици в Excel, CSV и печат
Следващ:SQL Server задава нивото на изолация на транзакции
 Хазяин| Публикувано в 8.02.2021 г. 11:45:25 ч. |
Redis променя номера на порта по подразбиране и задава паролата за достъп
https://www.itsvse.com/thread-2577-1-1.html
Публикувано в 22.09.2021 г. 20:26:16 ч. |
Научи се да учиш...
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com