¿Cuál es el nombre completo de Redis RDB? Modo de operación de persistencia de datos de memoria Redis RDB

El nombre completo de RDB esRedis database.

  • Como sugiere el nombre, RDB es una base de datos de Redis que se utiliza para almacenar datos.
  • Por lo tanto, a través de la persistencia de RDB, los datos almacenados en la memoria de Redis se escriben en el archivo RDB y se guardan en el disco para lograr la persistencia.
  • La característica de Redis es que puede conservar datos, es decir, escribir datos en la memoria en el disco para garantizar que no se pierdan datos, y también puede cargar datos del disco en la memoria.

¿Cuál es el nombre completo de Redis RDB? Modo de operación de persistencia de datos de memoria Redis RDB

Las operaciones de Redis al principio están todas basadas en la memoria, por lo que el rendimiento es muy alto, pero una vez que se cierra el programa, los datos se pierden.

Por lo tanto, necesitamos escribir datos en memoria en el disco a intervalos específicos, que es una instantánea en la jerga.

Al restaurar, el archivo de instantánea se escribe directamente en la memoria.

Esta es también una de las principales diferencias entre Redis y Memcached, porque Memcached no tiene capacidad de persistencia.

Para la persistencia de los datos de memoria de Redis, Redis nos proporciona los siguientes métodos:

  • Método de instantánea (RDB, Redis DataBase): escribe datos de memoria en el disco en forma binaria en un momento determinado;
  • Agregar solo archivo (AOF, Agregar solo archivo), registrar todos los comandos de operación y agregar al archivo en forma de texto;
  • Persistencia híbrida, un nuevo método después de Redis 4.0, la persistencia híbrida combina las ventajas de RDB y AOF.Al escribir, primero escriba los datos actuales al principio del archivo en forma de RDB y luego guarde los comandos de operación posteriores en el archivo en forma de AOF, lo que no solo puede garantizar la velocidad de reinicio de Redis, sino también reducir el riesgo de pérdida de datos.

Porque cada esquema de persistencia tiene escenarios de uso específicos.

Modo de operación de persistencia de datos de memoria Redis RDB

  • RDB (Redis DataBase) es el proceso de escribir una instantánea de memoria (Snapshot) en un momento determinado en el disco en forma binaria.
  • Las instantáneas de memoria son lo que decíamos más arriba.Se refiere al registro de estado de los datos en la memoria en un momento determinado.
  • Esto es similar a tomar una foto. Cuando toma una foto de un amigo, una foto puede registrar instantáneamente todas las imágenes del amigo.
  • Hay dos formas de activar RDB: una es la activación manual y la otra es la activación automática.

Activar manualmente el RDB

Hay dos operaciones para activar manualmente la persistencia:savebgsave.

La principal diferencia entre ellos es si bloquear o no la ejecución del subproceso principal de Redis.

1. Guardar comando

Ejecutar el comando guardar en el lado del cliente activará la persistencia de Redis, pero también hará que Redis se bloquee. No responderá a los comandos enviados por otros clientes hasta que se conserve la RDB, por lo que debe usarse con precaución en el entorno de producción.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

El proceso de ejecución del comando se muestra en la figura. 

2. Comando bgsave

  • bgsave (guardado en segundo plano) es un guardado en segundo plano.
  • La mayor diferencia entre este y el comando guardar es que bgsave bifurcará un proceso secundario para realizar la persistencia.
  • Todo el proceso es solo cuando el proceso secundario es fork.Sólo hay un breve bloqueo.
  • Una vez que se crea el proceso secundario, el proceso principal de Redis puede responder a las solicitudes de otros clientes.

con bloqueo de todo el procesosaveen comparación con el comandobgsaveEl comando es obviamente más adecuado para que lo usemos.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

Activar automáticamente RDB

Después de hablar sobre la activación manual, veamos la activación automática.Podemos configurar las condiciones para la activación automática en el archivo de configuración.

1. ahorrar mn

  • save mn significa que dentro de m segundos, si n claves cambian, la persistencia se activa automáticamente.Los parámetros m y n se pueden encontrar en el archivo de configuración de Redis.
  • Por ejemplo, guardar 60 1 significa que dentro de los 60 segundos, siempre que cambie una tecla, se activará la persistencia de RDB.
  • La esencia de la activación automática de la persistencia es que, si se cumplen las condiciones de activación establecidas, Redis ejecutará automáticamente el comando bgsave una vez.

Nota: Cuando se configuran varios comandos save mn, cualquier condición activará la persistencia.

Por ejemplo, configuramos los siguientes dos comandos save mn:

save 60 10
save 600 20
  • Cuando el valor de la clave de Redis cambia 60 veces en 10 s, se activará la persistencia;
  • Si la clave de Redis cambia en 60 s, y si el valor cambia menos de 10 veces, Redis determinará si la clave de Redis se ha modificado al menos 600 veces en 20 s y, de ser así, activará la persistencia.

2. Flushhall

  • El comando flushall se usa para vaciar la base de datos de Redis.
  • Debe utilizarse con precaución en un entorno de producción.
  • Cuando Redis ejecuta el comando flushall, activa la persistencia automática y borra el archivo RDB.

3. Disparador de sincronización maestro-esclavo

En la replicación maestro-esclavo de Redis, cuando el nodo esclavo realiza una operación de replicación completa, el nodo maestro ejecutará el comando bgsave para enviar el archivo RDB al nodo esclavo. Este proceso activa automáticamente la persistencia de Redis.

Redis puede consultar los parámetros de configuración actuales a través de comandos.

El formato del comando de consulta es:config get xxx

Por ejemplo, si desea obtener la configuración del nombre de almacenamiento para un archivo RDB, puede usar config get dbfilename .

El efecto de ejecución es el siguiente:

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

Dado que el servidor Redis se bloqueará al cargar el archivo RDB hasta que se complete la carga, puede causar mucho tiempo y no se puede acceder al sitio web.

Si desea eliminar manualmente el archivo de caché RDB dump.rdb de Redis, puede usar el siguiente comando para encontrar la ruta de almacenamiento del archivo dump.rdb▼

find / -name dump.rdb
  • Luego, elimine manualmente el archivo de caché dump.rdb a través de SSH.

Redis establece la configuración de RDB

Con respecto a establecer la configuración de RDB, puede usar las siguientes dos formas:

  1. Modificar manualmente el archivo de configuración de Redis
  2. Use la configuración de la línea de comando, config set dir "/usr/data" es el comando de almacenamiento para modificar el archivo RDB

Nota: La configuración en redis.conf puede obtenerse a través de config get xxx y modificarse a través de config set xxx value, y el método de modificar manualmente el archivo de configuración de Redis es globalmente efectivo, es decir, los parámetros establecidos al reiniciar el servidor de Redis no se perderá, pero se modificará con el comando , se perderá después de que se reinicie Redis.

Sin embargo, si desea modificar manualmente el archivo de configuración de Redis para que tenga efecto de inmediato, debe reiniciar el servidor de Redis y el método de comando no requiere reiniciar el servidor de Redis.

Recuperación de archivos RDB

Cuando se inicia el servidor de Redis, si el archivo RDB dump.rdb existe en el directorio raíz de Redis, Redis cargará automáticamente el archivo RDB para restaurar los datos persistentes.

Si no hay un archivo dump.rdb en el directorio raíz, primero mueva el archivo dump.rdb al directorio raíz de Redis.

Por supuesto, hay información de registro cuando se inicia Redis, que mostrará si el archivo RDB está cargado.

El servidor Redis se bloquea al cargar el archivo RDB hasta que se completa la carga.

Ahora sabemos que la persistencia de RDB se divide en dos formas: activación manual y activación automática:

  1. Su ventaja es que el archivo de almacenamiento es pequeño y la recuperación de datos es más rápida cuando se inicia Redis.
  2. La desventaja es que existe el riesgo de pérdida de datos.

La recuperación de archivos RDB también es muy simple. Simplemente coloque los archivos RDB en el directorio raíz de Redis, y Redis cargará y restaurará automáticamente los datos cuando se inicie.

Pros y contras de RDB

1) Ventajas de RDB

El contenido de RDB son datos binarios, ocupa menos memoria, es más compacto y es más adecuado como archivo de copia de seguridad;

RDB es muy útil para la recuperación ante desastres, es un archivo comprimido que se puede transferir a un servidor remoto más rápido para la recuperación del servicio Redis;

RDB puede mejorar en gran medida la velocidad de ejecución de Redis, porque el proceso principal de Redis bifurcará un proceso secundario para conservar los datos en el disco.

El proceso principal de Redis no realiza operaciones como E/S de disco;

En comparación con los archivos de formato AOF, los archivos RDB se reinician más rápido.

2) Desventajas de RDB

Debido a que RDB solo puede guardar datos durante un cierto intervalo de tiempo, si el servicio de Redis se cancela accidentalmente en el medio, los datos de Redis se perderán por un período de tiempo;

Un proceso en el que RDB requiere bifurcaciones frecuentes para guardarlo en el disco mediante una subentrada.

Si el conjunto de datos es grande, la bifurcación puede llevar mucho tiempo, y si el conjunto de datos es grande, el rendimiento de la CPU es bajo, lo que puede hacer que Redis no pueda atender a los clientes durante unos pocos milisegundos o incluso un segundo.

Por supuesto, también podemos deshabilitar la persistencia para mejorar la eficiencia de ejecución de Redis.

Si no es sensible a la pérdida de datos, puede hacerlo cuando el cliente se conecta config set save "" Comando para deshabilitar la persistencia para Redis.

redis.conf, si ensaveComente todas las configuraciones al principio, y la persistencia también se deshabilitará, pero esto generalmente no se hace.

Esperanza Chen Weiliang Blog ( https://www.chenweiliang.com/ ) compartió "¿Cuál es el nombre completo de Redis RDB? Modo de operación de persistencia de datos en memoria Redis RDB, que es útil para usted.

Bienvenido a compartir el enlace de este artículo:https://www.chenweiliang.com/cwl-26677.html

¡Bienvenido al canal de Telegram del blog de Chen Weiliang para obtener las últimas actualizaciones!

🔔 ¡Sea el primero en obtener la valiosa "Guía de uso de la herramienta de inteligencia artificial para marketing de contenidos ChatGPT" en el directorio superior del canal! 🌟
📚 Esta guía contiene un gran valor. 🌟Esta es una oportunidad única, ¡no la pierdas! ⏰⌛💨
¡Comparte y dale me gusta si te gusta!
¡Su compartir y Me gusta son nuestra motivación continua!

 

发表 评论

Su dirección de correo electrónico no será publicada. 项 已 用 * 标注

滚动 到 顶部