Adresář článků
Celý název RDB jeRedis database.
- Jak název napovídá, RDB je databáze Redis sloužící k ukládání dat.
- Proto se prostřednictvím persistence RDB data uložená v paměti Redis zapisují do souboru RDB a ukládají se na disk, aby se dosáhlo perzistence.
- Funkce Redis spočívá v tom, že dokáže uchovávat data, to znamená zapisovat data z paměti na disk, aby bylo zajištěno, že se žádná data neztratí, a může také načítat data z disku do paměti.

Operace Redis na začátku jsou všechny založeny na paměti, takže výkon je velmi vysoký, ale jakmile je program uzavřen, data jsou ztracena.
Proto musíme data v paměti zapisovat na disk v určených intervalech, což je v žargonu Snapshot.
Při obnově je soubor snímku zapsán přímo do paměti.
To je také jeden z hlavních rozdílů mezi Redis a Memcached, protože Memcached nemá žádnou schopnost persistence.
Pro zachování dat paměti Redis nám Redis poskytuje následující metody:
- Snapshot metoda (RDB, Redis DataBase): zápis paměťových dat na disk v binární podobě v určitém okamžiku;
- Připojit pouze soubor (AOF, připojit pouze soubor), zaznamenat všechny provozní příkazy a připojit k souboru v textové podobě;
- Hybridní persistence, nová metoda po Redis 4.0, hybridní persistence kombinuje výhody RDB a AOF.Při zápisu nejprve zapište aktuální data na začátek souboru ve tvaru RDB a následné příkazy operace pak ukládejte do souboru ve formě AOF, což může zajistit nejen rychlost restartu Redis, ale také snížit riziko ztráty dat.
Protože každé schéma persistence má specifické scénáře použití.
Provozní režim perzistence dat paměti Redis RDB
- RDB (Redis DataBase) je proces zápisu paměťového snímku (Snapshot) v určitém okamžiku na disk v binární podobě.
- Snímky paměti jsou to, co jsme řekli výše.Odkazuje na stavový záznam dat v paměti v určitém okamžiku.
- Je to podobné jako při fotografování. Když vyfotografujete přítele, fotografie může okamžitě zaznamenat všechny snímky přítele.
- Existují dva způsoby spouštění RDB: jedním je ruční spouštění a druhým je automatické spouštění.
Ručně spusťte RDB
Existují dvě operace pro ruční spuštění persistence:save和bgsave.
Hlavním rozdílem mezi nimi je, zda blokovat nebo neblokovat provádění hlavního vlákna Redis.
1. příkaz uložit
Provedení příkazu pro uložení na straně klienta spustí persistenci Redis, ale také uvede Redis do stavu blokování. Nebude reagovat na příkazy odeslané jinými klienty, dokud nebude RDB perzistentní, takže je třeba jej používat opatrně produkčním prostředí.
127.0.0.1:6379> save OK 127.0.0.1:6379>
Proces provádění příkazu je znázorněn na obrázku
2. příkaz bgsave
- bgsave (uložení na pozadí) je uložení na pozadí.
- Největší rozdíl mezi ním a příkazem save spočívá v tom, že bgsave rozvětví podřízený proces, aby provedl persistenci.
- Celý proces probíhá pouze tehdy, když je podřízený proces fork.Dochází pouze ke krátkému zablokování.
- Po vytvoření podřízeného procesu může hlavní proces Redis reagovat na požadavky ostatních klientů.
s blokováním celého procesusaveve srovnání s příkazembgsavePříkaz je pro nás samozřejmě vhodnější k použití.
127.0.0.1:6379> bgsave Background Saving started # 提示开始后台保存 127.0.0.1:6379>
Automaticky spouštět RDB
Po povídání o ručním spouštění se podíváme na automatické spouštění.V konfiguračním souboru můžeme nakonfigurovat podmínky pro automatické spouštění.
1. uložit mn
- save mn znamená, že během m sekund, pokud se změní n klíčů, se automaticky spustí persistence.Parametry ma n lze nalézt v konfiguračním souboru Redis.
- Například uložit 60 1 znamená, že do 60 sekund, pokud se změní jeden klíč, bude spuštěna persistence RDB.
- Podstatou automatického spouštění persistence je, že pokud jsou splněny nastavené podmínky spouštění, Redis jednou automaticky provede příkaz bgsave.
Poznámka: Když je nastaveno více příkazů save mn, každá podmínka spustí persistenci.
Nastavíme například následující dva příkazy save mn:
save 60 10 save 600 20
- Když se hodnota klíče Redis změní 60krát během 10s, spustí se persistence;
- Pokud se klíč Redis změní během 60 s a pokud se hodnota změní méně než 10krát, Redis určí, zda byl klíč Redis změněn alespoň 600krát během 20 s, a pokud ano, spustí persistenci.
2. Spláchnout
- Příkaz flushall se používá k vyprázdnění databáze Redis.
- V produkčním prostředí musí být používán s opatrností.
- Když Redis provede příkaz flushall, spustí automatickou perzistenci a vymaže soubor RDB.
3. Spouštění synchronizace master-slave
Při replikaci master-slave Redis, když podřízený uzel provede operaci úplné replikace, hlavní uzel provede příkaz bgsave k odeslání souboru RDB podřízenému uzlu.Tento proces automaticky spustí persistenci Redis.
Redis se může dotazovat na aktuální konfigurační parametry pomocí příkazů.
Formát příkazu dotazu je:config get xxx
Pokud například chcete získat nastavení názvu úložiště pro soubor RDB, můžete použít config get dbfilename .
Efekt provedení je následující:
127.0.0.1:6379> config get dbfilename 1) "dbfilename" 2) "dump.rdb"
Protože server Redis zablokuje načítání souboru RDB, dokud nebude načítání dokončeno, může to způsobit dlouhou dobu a web nebude dostupný.
Pokud chcete ručně odstranit soubor mezipaměti RDB dump.rdb z Redis, můžete pomocí následujícího příkazu najít cestu k úložišti souboru dump.rdb▼
find / -name dump.rdb
- Poté ručně odstraňte soubor cache dump.rdb pomocí SSH.
Redis nastavuje konfiguraci RDB
Pokud jde o nastavení konfigurace RDB, můžete použít následující dva způsoby:
- Ručně upravte konfigurační soubor Redis
- Použijte nastavení příkazového řádku, config set dir "/usr/data" je příkaz úložiště pro úpravu souboru RDB
Poznámka: Konfiguraci v redis.conf lze získat pomocí config get xxx a upravit pomocí konfigurační sady xxx value a metoda ruční úpravy konfiguračního souboru Redis je globálně účinná, to znamená, že parametry nastavené restartováním serveru Redis nebudou fungovat. být ztracen, ale upraven pomocí příkazu , bude ztracen po restartu Redis.
Pokud však chcete ručně upravit konfigurační soubor Redis, aby se projevil okamžitě, musíte restartovat server Redis a metoda příkazu nevyžaduje restartování serveru Redis.
Obnova souboru RDB
Po spuštění serveru Redis, pokud v kořenovém adresáři Redis existuje soubor RDB dump.rdb, Redis automaticky načte soubor RDB, aby obnovila trvalá data.
Pokud v kořenovém adresáři není žádný soubor dump.rdb, přesuňte nejprve soubor dump.rdb do kořenového adresáře Redis.
Samozřejmostí je informace protokolu při spuštění Redis, která ukáže, zda je soubor RDB načten.
Server Redis blokuje při načítání souboru RDB, dokud není načítání dokončeno.
Nyní víme, že persistence RDB se dělí na dva způsoby: ruční spouštění a automatické spouštění:
- Jeho výhodou je, že úložný soubor je malý a obnova dat je po spuštění Redis rychlejší.
- Nevýhodou je, že existuje riziko ztráty dat.
Obnova souborů RDB je také velmi jednoduchá. Stačí umístit soubory RDB do kořenového adresáře Redis a Redis po spuštění automaticky načte a obnoví data.
Výhody a nevýhody RDB
1) Výhody RDB
Obsah RDB jsou binární data, zabírá méně paměti, je kompaktnější a je vhodnější jako záložní soubor;
RDB je velmi užitečný pro obnovu po havárii, je to komprimovaný soubor, který lze rychleji přenést na vzdálený server pro obnovu služby Redis;
RDB může výrazně zlepšit rychlost Redis, protože hlavní proces Redis rozvětví podřízený proces, aby uložil data na disk.
Hlavní proces Redis neprovádí operace, jako je diskový vstup/výstup;
Ve srovnání se soubory formátu AOF se soubory RDB restartují rychleji.
2) Nevýhody RDB
Protože RDB může ukládat data pouze v určitém časovém intervalu, dojde při náhodném ukončení služby Redis uprostřed k ztrátě dat Redis na určitou dobu;
Proces, ve kterém RDB vyžaduje časté rozvětvení, aby jej udrželo na disku pomocí podpoložky.
Pokud je datová sada velká, může být rozvětvení časově náročné, a pokud je datová sada velká, výkon CPU je slabý, což může způsobit, že Redis nebude moci obsluhovat klienty po dobu několika milisekund nebo dokonce sekundy.
Samozřejmě můžeme také deaktivovat persistenci, abychom zlepšili efektivitu provádění Redis.
Pokud nejste citliví na ztrátu dat, můžete to udělat, když se klient připojí config set save "" Příkaz pro zakázání persistence pro Redis.
在redis.conf, pokud vsaveZakomentujte všechny konfigurace na začátku a perzistence bude také zakázána, ale obecně se to nedělá.
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) shared „Jaké je celé jméno Redis RDB? Redis RDB In-Memory Data Persistence Operation Mode, který je pro vás užitečný.
Vítejte u sdílení odkazu na tento článek:https://www.chenweiliang.com/cwl-26677.html
