Redis backup

RDB (copia de seguridad de instantánea)

Proceso de instantánea RDB:

RDB文件内容紧凑,文件小(比AOF文件小)非常适合于灾难恢复
  • 1. Redis usa la función fork para copiar un proceso padre actual como un proceso hijo
  • 2. El proceso primario continúa procesando las solicitudes de los usuarios, y el proceso secundario comienza a persistir los datos en la memoria al disco
  • 3. Cuando el proceso secundario escribe los datos en la memoria en el archivo temporal, reemplazará el antiguo archivo RDB con el archivo temporal.
功能核心函数rdbSave(生成RDB文件)和rdbLoad(从文件加载内存)两个函数

Inserte la descripción de la imagen aquí

Instantánea

允许你每隔一段时间对内存数据做一次快照然后存储到硬盘中。

Directorio y nombre de archivo

La ruta predeterminada del archivo persistente RDB al disco está en el directorio actual, y el nombre del archivo es dump.rdb. Puede especificar el directorio del archivo y el nombre del archivo a través del archivo de configuración dir y dbfilename. Parámetros para comprimir

Ventajas:

Adecuado para recuperación de datos a gran escala, baja integridad de datos

Desventajas

Durante el intervalo de tiempo de inactividad, se pierden datos; el proceso fork ocupará una cierta cantidad de espacio de memoria.

Mecanismo de disparo:

  • 1. Guardar la regla cumple activará la regla RDB
  • 2. Ejecute el comando flushall
  • 3. Salga de redis también genera el archivo dump.rdb

AOF (Copia de seguridad de comandos)

保存所有的写命令到文件

Proceso de sincronización:

  • 1. Redis ejecuta fork () y ahora tiene procesos primarios y secundarios.
  • 2. El proceso secundario comienza a escribir el contenido del nuevo archivo AOF en un archivo temporal.
  • 3. Para todos los recién ejecutadosEscribirComando, el proceso principal los acumula en una memoria caché al agregar estos cambios al final del archivo AOF existente: de esta manera, incluso si hay una parada en el medio de la reescritura, el archivo AOF existente todavía es seguro.
  • 4. Cuando el proceso secundario termina de reescribirse, envía una señal al proceso primario. Después de recibir la señal, el proceso primario agrega todos los datos en la memoria caché al final del nuevo archivo AOF.
  • 5. ¡Hazlo! Ahora Redis reemplaza el archivo antiguo atómicamente con el nuevo archivo, después de lo cual todos los comandos se agregarán directamente al final del nuevo archivo AOF
每当执行服务器(定时)任务或者函数时flushAppendOnlyFile 函数都会被调用, 这个函数执行以下两个工作
aof写入保存:
WRITE:根据条件,将 aof_buf 中的缓存写入到 AOF 文件
SAVE:根据条件,调用 fsync 或 fdatasync 函数,将 AOF 文件保存到磁盘中。

Inserte la descripción de la imagen aquí

Directorio y nombre de archivo

Al grabar el comando de operación de escritura enviado al servidor para formar un archivo AOF, el nombre predeterminado del archivo es appendonly.aof, puede especificar el nombre del archivo a través de appendfilename

Cuando AOF sincroniza los datos de la memoria en el disco, no escribe inmediatamente el archivo en el disco, sino que primero lo almacena en caché en el sistema y luego lo escribe en el disco cada 30 segundos.

Archivo de reparación

Si el archivo aof tiene errores y redis no puede iniciarse, puede usar
redis-check-aof --fix appendonly.aof en el directorio bin para reparar el archivo de copia de seguridad.

Ventajas:

1. Cada modificación está sincronizada, la integridad es mejor
2. Sincronizado una vez por segundo, puede perder datos
3. Nunca sincronizado, entonces el sistema operativo sincroniza los datos por sí mismo, el más rápido y más eficiente.

Desventajas

1. El archivo de datos aof es más grande que rdb, y la velocidad de reparación es lenta.
2. La eficiencia operativa de
AOF es mucho menor que la de RDB 3. Un dato y un registro para RDB, AOF puede tener múltiples datos

Cómo activarlo (no activado de forma predeterminada):

Modifique anexivamente sí en el archivo de configuración

193 artículos originales publicados · Me gusta 13 · Visitantes más de 40,000

Supongo que te gusta

Origin blog.csdn.net/u013919153/article/details/105602136
Recomendado
Clasificación