Persistencia de Redis: explicación detallada de RDB y AOF


¿El origen de la persistencia de RDB y AOF?

Debido a que los datos en Redis se basan en la memoria, si el servidor se apaga o deja de funcionar, los datos almacenados en Redis se perderán directamente. RDB y AOF son dos mecanismos de persistencia proporcionados por Redis, que pueden conservar datos en Redis en el disco. Cuando la instancia de Redis falla y se reinicia, los datos se pueden restaurar de acuerdo con el archivo de respaldo

Dos, RDB

Descripción general:

RDB también se llama instantánea de datos de Redis. En pocas palabras, registra todos los datos en la memoria del disco. Cuando la instancia de Redis falla y se reinicia, el archivo de instantánea se lee del disco para restaurar los datos. Los archivos de instantáneas se denominan archivos RDB y se guardan en el directorio de ejecución actual de forma predeterminada (RDB puede comprender tareas de sincronización periódica y el contenido de la tarea es hacer una copia de seguridad de los datos completos)
Cada vez que se activa el RDB, se regenerará un nuevo archivo RDB para sobrescribir el archivo RDB antiguo, a fin de garantizar que la copia de seguridad obtenga los datos más recientes.

Estrategia de activación de RDB:

① Al cerrar la instancia de Redis, redis realizará activamente un RDB antes del cierre (el cierre no es
② Cuando usa el comando save/bgsave, redis también persistirá en los datos de la memoria ③tiempo de inactividad, el tiempo de inactividad significa pérdida de datos)

save 900 1
– significa que dentro de 900 segundos, 1 clave en redis cambia, luego realiza un bgsave
save 300 10
– significa que dentro de 300 segundos, 1 clave en redis cambia, luego realiza un bgsave
save 60 10000
– significa que dentro de 60 segundos, Se cambian 10000 claves en redis, luego se realiza un bgsave

La diferencia entre guardar/bgsave

Como se mencionó anteriormente, puede usar el comando guardar o el comando bgsave para activar el RDB, entonces, ¿cuál es la diferencia entre los dos?

  • Si usa el comando guardar, la copia de seguridad de los datos la realiza el subproceso principal. Dado que Redis es de un solo subproceso, si usa el comando guardar para hacer una copia de seguridad de los datos de la memoria, redis no puede responder a las solicitudes del usuario durante la copia de seguridad de los datos. Cuando los datos de los que se va a realizar una copia de seguridad son muy grandes, es posible que la solicitud se bloquee y se agote el tiempo de espera.
  • Si se usa el comando bgsave, el subproceso principal en realidad bifurca los subprocesos para realizar operaciones RDB. El subproceso principal solo se bloquea cuando los subprocesos se bifurcan y luego continúa respondiendo a las solicitudes de los usuarios. Luego, el proceso hijo puede leer los datos de la memoria, conservarlos y generar un nuevo archivo RDB para reemplazar el archivo RDB anterior.
Desventajas de RDB:
  • El intervalo de ejecución de RDB es largo y existe el riesgo de pérdida de datos entre dos escrituras de RDB.
  • El proceso secundario de bifurcación, la compresión y la escritura de archivos RDB requieren mucho tiempo
Ventajas de RDB:
  • Usar archivos RDB para restaurar datos es rápido y eficiente (similar a copiar archivos)
  • En comparación con los archivos persistentes AOF, los archivos RDB son más pequeños
Configuración relacionada con RDB:
  • Configurar la compresión de archivos RDB en redis.conf
# 表示的是是否开启压缩,不建议开启,虽然节省空间,但是会耗费CPU
rdbcompression yes
  • Configure el nombre del archivo RDB en redis.conf
# 默认的rdb文件名称
dbfilename dump.rdb
  • Configure la ruta de almacenamiento del archivo rdb en redis.conf
dir ./
  • Configure la estrategia de activación en redis.conf
# 15分钟内有1个key发生改变,那么就保存
save 900 1
# 5分钟内有10个key发生改变,那么就保存
save 300 10
# 1分钟内有10000个key发生改变,那么就保存
save 60 10000
# 执行的都是bgsave

3. AOF

Descripción general:

El nombre completo de AOF se llama Append Only File (archivo adjunto). Cada comando procesado por Redis se registrará en el archivo AOF, que puede considerarse como un archivo de registro de comandos (Lo que AOF almacena no son los datos en sí, sino el comando para ejecutar la operación de escritura de Redis, que es similar a almacenar comandos como insertar/actualizar en lugar de datos.

Estrategia de activación: active redis.conf según el archivo de configuración
  • Cada vez que se ejecuta un comando, se registra inmediatamente en el archivo AOF (el rendimiento es el peor, lo ejecuta el proceso principal)
appendfsync always
  • Después de ejecutar el comando de escritura, colóquelo primero en el búfer AOF y luego escriba los datos en el búfer en el archivo AOF cada 1. La configuración predeterminada (el rendimiento es mejor, pero los datos dentro de 1 segundo pueden perderse)
appendfsync everysec
  • Después de ejecutar el comando de escritura, colóquelo primero en el búfer AOF y el sistema operativo decide volver a escribirlo en el disco de manera apropiada (la confiabilidad es relativamente baja y el rendimiento es el mejor)
appendfync no

elemento de configuración

Momento del cepillado

ventaja

defecto

Siempre

Disco de cepillo síncrono

Baja confiabilidad, casi sin pérdida de datos

impacto en el rendimiento

cada segundo

Cepillado por segundo

rendimiento moderado

Pérdida de datos de hasta 1 s.

No

control del sistema operativo

Mejor presentación

Poca confiabilidad, posible pérdida de grandes cantidades de datos.

Mecanismo de reescritura de AOF:

Dado que AOF registra comandos, cuando se ejecutan muchos comandos, se registrarán muchos comandos redundantes, por ejemplo:

# 添加key1的值
set key1 v1
# 修改key1的值
set key1 v2
# 删除key1的值
del key1

De hecho, la clave1 se eliminó al final, por lo que todos los comandos relacionados con la clave1 son en realidad inútiles, pero todos los comandos se registran en AOF, lo que hará que el archivo AOF sea grande y almacene muchos comandos redundantes.
Usando el comando bgrewriteaof, El archivo AOF se puede reescribir para lograr el mismo efecto con el mínimo comando. Después de ejecutar el comando, todos los comandos redundantes se eliminarán para lograr el efecto de compresión del archivo AOF.

Ventajas de AOF:
  • A través de la configuración, los datos de respaldo se pueden hacer más completos y seguros.
  • Se ocupan menos recursos de CPU cada vez que se realiza AOF (debido a que es un anexo, RDB se copia nuevamente)
Desventajas del AOF:
  • La restauración mediante archivos AOF es lenta y todas las instrucciones deben ejecutarse secuencialmente
  • Los archivos AOF pueden ser mucho más grandes que los RDB y registran todas las operaciones de escritura.
Configuración AOF:
  • Configure AOF en redis.conf para habilitar
# 表示的是开启,默认是no
appendonly yes
  • Configure el nombre del archivo AOF en redis.conf
# 这里表示的是AOF文件名称
appendfilename "appendonly.aof"
  • Configure la estrategia de activación de reescritura en redis.conf
# AOF文件比上次文件增长超过百分之百则触发重写
auto-aof-rewrite-percentage 100
# AOF文件体积最小多大以上才能触发重写
auto-aof-rewrite-min-size 64mb
Cuarto, la comparación entre RDB y AOF

RDB

AOF

Persistencia

Tome instantáneas de toda la memoria a intervalos regulares.

Registra cada comando ejecutado

integridad de los datos

Incompleto, perdido entre copias de seguridad

Relativamente completo, dependiendo de la estrategia de cepillado.

Tamaño del archivo

Habrá compresión, el tamaño del archivo es más pequeño.

Grabar comandos, el tamaño del archivo es muy grande.

Velocidad de recuperación del tiempo de inactividad

pronto

lento

Prioridad de recuperación de datos

Bajo porque la integridad de los datos no es tan buena como AOF

Alto debido a una mayor integridad de los datos

Uso de recursos del sistema

Alto y elevado consumo de CPU y memoria.

Bajos, principalmente recursos de E/S de disco, pero AOF consumirá muchos recursos de CPU y memoria al reescribir

escenas a utilizar

La pérdida de datos se puede tolerar durante varios minutos y la búsqueda de una velocidad de inicio más rápida

Los altos requisitos de seguridad de los datos son comunes

5. Puntos de conocimiento:
  • RDB está habilitado de forma predeterminada y AOF está deshabilitado de forma predeterminada.
6. Uso real

En el uso real, generalmente uno de ellos no se activará solo, sino que se utilizará una combinación de los dos juntos. De acuerdo con la tolerancia a desastres, RDB puede realizar RDB periódicamente para obtener archivos de respaldo en momentos específicos. Los datos de AOF son más completos y la pérdida de datos es muy pequeña.

Supongo que te gusta

Origin blog.csdn.net/qq_32419139/article/details/132345453
Recomendado
Clasificación