Red de conocimiento informático - Problemas con los teléfonos móviles - Varias formas de persistencia de Redis: análisis en profundidad de RDB

Varias formas de persistencia de Redis: análisis en profundidad de RDB

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

1. Varios métodos de persistencia

La persistencia de Redis tiene los siguientes tres métodos:

La instantánea (RDB, Redis DataBase) registrará el momento en que los datos se escriben en el disco. forma binaria;

Solo se agrega el archivo (AOF, Append Only File). AOF (Append Only File), registra todos los comandos de operación y los agrega al archivo como texto;

La persistencia híbrida es un nuevo método adoptado por Redis 4.0, que combina Las ventajas de RDB y AOF son que el actual Los datos se escriben primero al principio del archivo en forma de RDB, y luego los comandos de operación posteriores se almacenan en el archivo en forma de AOF, lo que garantiza que Redis pueda escribir los datos actuales en forma de RDB. Esto garantiza la velocidad cuando se reinicia Redis y al mismo tiempo reduce el riesgo de pérdida de datos.

Dado que cada escenario de persistencia tiene casos de uso específicos, comencemos con la persistencia RDB.

2. Introducción a RDB

RDB (Redis DataBase) es el proceso de escribir una instantánea de memoria (instantánea) en un momento determinado en el disco en forma binaria.

3. Disparadores de persistencia

Los disparadores de persistencia RDB se dividen en dos tipos: uno se activa manualmente y el otro se activa automáticamente.

1) Activadores manuales

Hay dos activadores manuales para la persistencia: ¿guardar? y bgsave. La principal diferencia entre ellos es si bloquearán el hilo principal de Redis.

1) comando save?

¿La ejecución del comando save? en el cliente activará la persistencia de Redis, pero también evitará que Redis responda a otros comandos del cliente hasta que se complete la persistencia de RDB. . , por lo que debe usarse con precaución en un entorno de producción.

El comando save? se usa de la siguiente manera:

Como puede ver en la imagen, después de ejecutar el comando save?, el tiempo de modificación del archivo persistente dump.rdb? cambiado. ¿Esto significa que guardar? activó con éxito la persistencia de RDB.

El proceso del comando guardar? se muestra en la siguiente figura:

② comando bgsave?

bgsave (guardar en segundo plano) significa guardar en segundo plano, ¿cuál? ¿Es lo mismo que guardar? En comparación con bloquear todo el proceso del comando "guardar", el comando "bsave?" es obviamente más adecuado para nuestro uso.

El uso del comando bgsave? es el siguiente:

El proceso de ejecución de bgsave? es el siguiente:

2) Activación automática

Después de presentar la activación manual de los comandos RDB, echemos un vistazo a cómo activar automáticamente la persistencia de RDB.

¿RDB? La persistencia automática proviene principalmente de las siguientes situaciones.

① save m n

save m n? activa automáticamente la persistencia cuando se cambian n claves en m segundos.

Los parámetros myn se pueden encontrar en el archivo de configuración de Redis; por ejemplo, guardar 60 1 significa que la persistencia de RDB se activará si al menos una clave cambia en 60 segundos.

Activar automáticamente la persistencia es esencialmente que Redis ejecuta automáticamente un comando "bsave" cuando se cumplen las condiciones de activación establecidas.

Nota: Cuando se configuran varios comandos save m n, la persistencia se activará si se cumple alguna de las condiciones.

Por ejemplo, configuramos los dos siguientes comandos save m n:

guardar 60 10

guardar 600 1

Si dentro de 60 segundos Si hay 10 cambios de clave de Redis en 60 segundos, se activa la persistencia; si hay menos de 10 cambios de clave de Redis en 60 segundos, Redis determinará si la clave de Redis cambia menos de 10 veces en 60 segundos. al menos una vez en 600 segundos. Si este es el caso, se activa la persistencia.

2) flusall

El comando flusall? se usa para borrar la base de datos de Redis y debe usarse con precaución en un entorno de producción. Cuando Redis ejecuta el comando flusall?, activa la persistencia automática y borra el archivo .RDB.

El resultado es como se muestra en la siguiente figura:

3 Activador 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 maestro ¿El nodo ejecutará el comando bgsave y enviará el archivo RDB al nodo esclavo, activando automáticamente la persistencia de Redis?

4. Configuración

Establecer correctamente la configuración de RDB puede garantizar que Redis se ejecute de manera eficiente y estable.

Los parámetros de configuración de RDB se pueden encontrar en el archivo de configuración de Redis, de la siguiente manera:

# condiciones de guardado de RDB

guardar 900 1

guardar 300 10

guardar 60 10000

# error de bgsave, si se deben dejar de persistir los datos en el disco, sí significa dejar de persistir, no significa ignorar el error y continuar escribiendo el archivo, no significa Ignore el error y continúe escribiendo en el archivo.

detener-escritura-en-bgsave-error sí

# Compresión de archivos RDB

compresión rdb sí

# Sobre escritura y lectura Si para abrir el archivo RDB, verifique al recuperar el archivo para verificar si está dañado.

rdbchecksum sí

# nombre de archivo RDB

dbfilename dump.rdb

# directorio de archivos RDB

dir .

Los parámetros más importantes son los siguientes:

1) Guardar parámetros

Se utiliza para configurar parámetros que desencadenan condiciones de persistencia de RDB y se guardarán cuando el Se cumplen las condiciones de guardado. Los datos se conservan en el disco duro.

La configuración predeterminada es la siguiente:

guardar 900 1: si al menos 1 valor clave cambia en 900 segundos, los datos se conservarán en el disco duro

;

guardar 300 10: si al menos 10 valores clave cambian en 300 segundos, los datos se conservarán en el disco duro;

guardar 60 10000: indica que si al menos 10,000 valores clave ​​cambiar en 60 segundos. Si el valor de la clave cambia, los datos se conservarán en el disco duro.

② parámetro de compresión rdb

El valor predeterminado es sí, lo que significa que la compresión de archivos RDB está habilitada y Redis usa el algoritmo LZF para la compresión. Si no desea consumir el rendimiento de la CPU para la compresión de archivos, puede desactivarla, lo que tiene la desventaja de requerir más espacio en disco para guardar el archivo.

3) parámetro rdbchecksum

¿El valor predeterminado es sí? Indica si se debe activar la verificación de archivos RDB, que busca daños al escribir y leer archivos, y detiene el inicio si la verificación encuentra daños durante el inicio.

5. Consulta de configuración

Redis le permite utilizar comandos para consultar los parámetros de configuración actuales.

El formato del comando de consulta es: config get xxx. Por ejemplo, para obtener la configuración del nombre de almacenamiento del archivo RDB, puede usar config get dbfilename. El efecto de ejecución se muestra en la siguiente figura:

Para consultar el directorio de archivos de RDB, puede usar el comando config get dir, el efecto de ejecución se muestra en la siguiente figura:

6. RDB se puede realizar de las dos formas siguientes:

Modificar manualmente el archivo de configuración de Redis;

Utilizar la línea de comando para configurar, por ejemplo, utilizar config set dir "/usr/data "? se utiliza para modificar el directorio de almacenamiento RDB.

Nota: La modificación manual del archivo de configuración de Redis tiene efecto global, es decir, incluso si se reinicia el servidor Redis, los parámetros de configuración del servidor Redis no se perderán y las modificaciones realizadas mediante comandos se perderán. Después del reinicio. Perdido después de Redis. Sin embargo, para modificar manualmente el archivo de configuración de Redis para que surta efecto de inmediato, debe reiniciar el servidor de Redis, mientras que usar el método de comando no requiere reiniciar el servidor de Redis.

Consejo: El archivo de configuración de Redis se encuentra en la ruta raíz del directorio de instalación de Redis y su nombre predeterminado es redis.conf.

7.Recuperación de archivos RDB

Cuando se inicia el servidor Redis, si hay un archivo RDB dump.rdb en el directorio raíz de Redis, Redis cargará automáticamente el archivo RDB para restaurarlo persistente. datos.

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

Verifique si el archivo RDB está cargado

Cuando se inicia Redis, hay un mensaje de registro que muestra si el archivo RDB está cargado. Ejecutamos el comando de inicio de Redis: src/redis-server. redis.conf, como se muestra a continuación:

Como se puede ver en el registro, el servicio Redis cargó el archivo RDB normalmente cuando se inició.

Consejo: Durante la carga del archivo RDB, el servidor Redis permanecerá bloqueado hasta que se complete la carga.

8. Ventajas y desventajas de RDB

1) Ventajas y desventajas de RDB

El contenido de RDB son datos binarios, que ocupan menos memoria. más compacto y más adecuado para usarse como archivo de respaldo.

RDB es muy útil en la recuperación ante desastres; como archivo compacto, se puede transferir al servidor remoto más rápidamente para la recuperación del servicio Redis; p>

RDB Puede mejorar en gran medida la velocidad de ejecución de Redis, porque cada vez que persiste, el proceso principal de Redis bifurcará () un proceso secundario para conservar los datos en el disco, y el proceso principal de Redis no funcionará. operaciones como E/S de disco.

Los archivos RDB se reinician mucho más rápido que los archivos en formato AOF.

2) Desventajas de RDB

Dado que RDB solo puede guardar datos durante un cierto intervalo de tiempo, si el servicio Redis finaliza inesperadamente en medio del proceso, los datos de Redis dentro de un cierto se perderá un período de tiempo;

RDB debe bifurcarse() con frecuencia para que persista en el disco mediante procesos secundarios. Si el conjunto de datos es grande, fork() puede llevar mucho tiempo, y si el conjunto de datos es grande y el rendimiento de la CPU es deficiente, puede hacer que Redis deje de atender a los clientes durante unos milisegundos o incluso un segundo.

9. Deshabilitar la persistencia

Deshabilitar la persistencia puede mejorar la eficiencia de ejecución de Redis.

Si no es sensible a la pérdida de datos, puede ejecutar el comando config set save ""?" cuando se conecte al cliente para deshabilitar la persistencia de Redis, como se muestra en la siguiente figura:

10. Resumen

A través de este artículo, podemos aprender que la persistencia de RDB se divide en dos métodos: activación manual y activación automática. La 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. La desventaja es que existe el riesgo de perder datos en el archivo RDB. La recuperación también es muy simple. Simplemente coloque el archivo RDB en el directorio raíz de Redis y Redis cargará y restaurará los datos automáticamente cuando se inicie. /p>

11. Preguntas para pensar

Si el uso de CPU del servidor Redis es demasiado alto, ¿cuál puede ser el motivo?

12 Referencias y agradecimientos

blogs.com/ysocean/p/9114268.html

blogs.com/wdliu/p/9377278.html

Varios métodos de persistencia de Redis-...- Análisis en profundidad de RDB

p>

Etiqueta: de forma predeterminada, utilice el comando que bloquea el inicio plural para obtener el resumen rojo de la información del registro