Directori d'articles
El nom complet de RDB ésRedis database.
- Com el seu nom indica, RDB és una base de dades Redis utilitzada per emmagatzemar dades.
- Per tant, mitjançant la persistència RDB, les dades emmagatzemades a la memòria Redis s'escriuen al fitxer RDB i s'emmagatzemen al disc per aconseguir la persistència.
- La característica de Redis és que pot persistir dades, és a dir, escriure dades a la memòria al disc per assegurar-se que no es perdin dades, i també pot carregar dades del disc a la memòria.

Les operacions de Redis al principi es basen totes en la memòria, de manera que el rendiment és molt alt, però un cop tancat el programa, les dades es perden.
Per tant, hem d'escriure dades a la memòria al disc a intervals especificats, que és Snapshot en argot.
Quan es restaura, el fitxer de la instantània s'escriu directament a la memòria.
Aquesta també és una de les principals diferències entre Redis i Memcached, perquè Memcached no té cap capacitat de persistència.
Per a la persistència de les dades de memòria de Redis, Redis ens proporciona els mètodes següents:
- Mètode Snapshot (RDB, Redis DataBase): escriu dades de memòria al disc en forma binària en un moment determinat;
- Afegiu només fitxer (AOF, Afegiu només fitxer), enregistreu totes les ordres d'operació i afegiu-lo al fitxer en forma de text;
- La persistència híbrida, un nou mètode després de Redis 4.0, la persistència híbrida combina els avantatges de RDB i AOF.Quan escriviu, primer escriviu les dades actuals al començament del fitxer en forma de RDB i, a continuació, deseu les ordres d'operació posteriors al fitxer en forma d'AOF, que no només pot garantir la velocitat de reinici de Redis, sinó que també pot reduir el risc de pèrdua de dades.
Perquè cada esquema de persistència té escenaris d'ús específics.
Mode d'operació de persistència de dades de memòria Redis RDB
- RDB (Redis DataBase) és el procés d'escriure una instantània de memòria (Snapshot) en un moment determinat al disc en forma binària.
- Les instantànies de memòria són les que hem dit més amunt.Es refereix al registre d'estat de les dades a la memòria en un moment determinat.
- Això és semblant a fer una foto. Quan fas una foto d'un amic, una foto pot gravar a l'instant totes les imatges de l'amic.
- Hi ha dues maneres d'activar RDB: una és l'activació manual i l'altra és l'activació automàtica.
Activa manualment el RDB
Hi ha dues operacions per activar manualment la persistència:save和bgsave.
La principal diferència entre ells és si es bloqueja o no l'execució del fil principal de Redis.
1. desar l'ordre
L'execució de l'ordre de desar al costat del client activarà la persistència de Redis, però també farà que Redis estigui en un estat de bloqueig. No respondrà a les ordres enviades per altres clients fins que no es mantingui el RDB, per la qual cosa s'ha d'utilitzar amb precaució en l'entorn de producció.
127.0.0.1:6379> save OK 127.0.0.1:6379>
El procés d'execució de l'ordre es mostra a la figura
2. comanda bgsave
- bgsave (desa en segon pla) és un desament en segon pla.
- La diferència més gran entre això i l'ordre de desar és que bgsave bifurcarà un procés fill per dur a terme la persistència.
- Tot el procés és només quan el procés fill és fork.Només hi ha un breu bloqueig.
- Un cop creat el procés fill, el procés principal de Redis pot respondre a les sol·licituds d'altres clients.
amb el bloqueig de tot el procéssaveen comparació amb l'ordrebgsaveL'ordre és, òbviament, més adequat per a nosaltres.
127.0.0.1:6379> bgsave Background Saving started # 提示开始后台保存 127.0.0.1:6379>
Activa automàticament RDB
Després de parlar de l'activació manual, mirem l'activació automàtica.Podem configurar les condicions per a l'activació automàtica al fitxer de configuració.
1. guardar mn
- save mn significa que en m segons, si canvien n tecles, la persistència s'activa automàticament.Els paràmetres m i n es poden trobar al fitxer de configuració de Redis.
- Per exemple, desar 60 1 significa que en 60 segons, sempre que canviï una clau, s'activarà la persistència RDB.
- L'essència de l'activació automàtica de la persistència és que si es compleixen les condicions d'activació establertes, Redis executarà automàticament l'ordre bgsave una vegada.
Nota: quan s'estableixen diverses ordres de desar mn, qualsevol condició activarà la persistència.
Per exemple, establim les dues ordres save mn següents:
save 60 10 save 600 20
- Quan el valor de la clau Redis canvia 60 vegades en 10 segons, s'activarà la persistència;
- Si la clau Redis canvia en 60 segons, i si el valor canvia menys de 10 vegades, Redis determinarà si la clau Redis s'ha modificat almenys 600 vegades en 20 segons i, si és així, activarà la persistència.
2. Flushall
- L'ordre flushall s'utilitza per esborrar la base de dades Redis.
- S'ha d'utilitzar amb precaució en un entorn de producció.
- Quan Redis executa l'ordre flushall, activa la persistència automàtica i esborra el fitxer RDB.
3. Activador de sincronització mestre-esclau
A la rèplica mestre-esclau de Redis, quan el node esclau realitza una operació de rèplica completa, el node mestre executarà l'ordre bgsave per enviar el fitxer RDB al node esclau. Aquest procés activa automàticament la persistència de Redis.
Redis pot consultar els paràmetres de configuració actuals mitjançant ordres.
El format de l'ordre de consulta és:config get xxx
Per exemple, si voleu obtenir la configuració del nom d'emmagatzematge per a un fitxer RDB, podeu utilitzar config get dbfilename .
L'efecte d'execució és el següent:
127.0.0.1:6379> config get dbfilename 1) "dbfilename" 2) "dump.rdb"
Atès que el servidor Redis bloquejarà quan carregui el fitxer RDB fins que s'hagi completat la càrrega, pot provocar molt de temps i no es pot accedir al lloc web.
Si voleu suprimir manualment el fitxer de memòria cau RDB dump.rdb de Redis, podeu utilitzar l'ordre següent per trobar la ruta d'emmagatzematge del fitxer dump.rdb▼
find / -name dump.rdb
- A continuació, suprimiu manualment el fitxer de memòria cau dump.rdb mitjançant SSH.
Redis estableix la configuració de RDB
Pel que fa a la configuració de RDB, podeu utilitzar les dues maneres següents:
- Modifiqueu manualment el fitxer de configuració de Redis
- Utilitzeu la configuració de la línia d'ordres, config set dir "/usr/data" és l'ordre d'emmagatzematge per modificar el fitxer RDB
Nota: La configuració a redis.conf es pot obtenir mitjançant config get xxx i modificar-se mitjançant el valor de config set xxx, i el mètode per modificar manualment el fitxer de configuració de Redis és globalment efectiu, és a dir, els paràmetres establerts en reiniciar el servidor Redis no seran es perdrà, però es modifiqui amb l'ordre , es perdrà després de reiniciar Redis.
Tanmateix, si voleu modificar manualment el fitxer de configuració de Redis perquè tingui efecte immediatament, heu de reiniciar el servidor Redis i el mètode d'ordres no requereix reiniciar el servidor Redis.
Recuperació de fitxers RDB
Quan s'inicia el servidor Redis, si el fitxer RDB dump.rdb existeix al directori arrel de Redis, Redis carregarà automàticament el fitxer RDB per restaurar les dades persistents.
Si no hi ha cap fitxer dump.rdb al directori arrel, moveu el fitxer dump.rdb al directori arrel de Redis.
Per descomptat, hi ha informació de registre quan s'inicia Redis, que mostrarà si el fitxer RDB està carregat.
El servidor Redis es bloqueja mentre carrega el fitxer RDB fins que s'ha completat la càrrega.
Ara sabem que la persistència RDB es divideix de dues maneres: activació manual i activació automàtica:
- El seu avantatge és que el fitxer d'emmagatzematge és petit i la recuperació de dades és més ràpida quan s'inicia Redis.
- L'inconvenient és que hi ha un risc de pèrdua de dades.
La recuperació dels fitxers RDB també és molt senzilla: només cal que poseu el fitxer RDB al directori arrel de Redis, i Redis carregarà i restaurarà les dades automàticament quan s'iniciï.
Pros i contres de RDB
1) Avantatges RDB
El contingut RDB és de dades binàries, ocupa menys memòria, és més compacte i és més adequat com a fitxer de còpia de seguretat;
RDB és molt útil per a la recuperació de desastres, és un fitxer comprimit que es pot transferir a un servidor remot més ràpidament per a la recuperació del servei Redis;
RDB pot millorar considerablement la velocitat d'execució de Redis, perquè el procés principal de Redis bifurcarà un procés fill per conservar les dades al disc.
El procés principal de Redis no realitza operacions com ara E/S de disc;
En comparació amb els fitxers en format AOF, els fitxers RDB es reinicien més ràpidament.
2) Inconvenients de RDB
Com que RDB només pot desar dades durant un interval de temps determinat, si el servei Redis s'acaba accidentalment al mig, les dades de Redis es perdran durant un període de temps;
Un procés en el qual RDB requereix bifurcacions freqüents per mantenir-lo al disc mitjançant subentrada.
Si el conjunt de dades és gran, la bifurcació pot consumir molt de temps, i si el conjunt de dades és gran, el rendiment de la CPU és deficient, cosa que pot fer que Redis no pugui servir els clients durant uns mil·lisegons o fins i tot un segon.
Per descomptat, també podem desactivar la persistència per millorar l'eficiència d'execució de Redis.
Si no sou sensibles a la pèrdua de dades, podeu fer-ho quan el client es connecti config set save "" Ordre per desactivar la persistència per a Redis.
在redis.conf, si ensaveComenta totes les configuracions al principi i la persistència també es desactivarà, però això no es fa generalment.
Bloc d'Hope Chen Weiliang ( https://www.chenweiliang.com/ ) ha compartit "Quin és el nom complet de Redis RDB? Mode d'operació de persistència de dades a la memòria Redis RDB, que us és útil.
Benvingut a compartir l'enllaç d'aquest article:https://www.chenweiliang.com/cwl-26677.html
