Persistencia de la base de datos Centos7Redis, principio de funcionamiento de la persistencia, escenarios de aplicación y configuración de la persistencia

1. Descripción general de la base de datos

Redis es una base de datos de clave-valor avanzada. Es similar a Memcached, pero los datos se pueden conservar y los tipos de datos admitidos son muy ricos. Hay cadenas, listas enlazadas, conjuntos y combinaciones ordenadas. Admite el cálculo de la unión de conjuntos y el complemento (diferencia) en el lado del servidor y también admite múltiples funciones de clasificación. Por lo tanto, Redis también se puede llamar servidor de estructura de datos.

En segundo lugar, el papel de la persistencia y su implementación.

1. Función

Todos los datos de Redis se almacenan en la memoria. Si no hay persistencia de configuración, todos los datos se perderán después del reinicio de Redis. Por lo tanto, debe activar la función de persistencia de Redis y guardar los datos en el disco. Cuando se reinicia Redis, puede descargarlo del disco. Para restaurar datos. Luego, guárdelo en el disco de forma asincrónica de vez en cuando (modo semipersistente); también puede escribir cada cambio de datos en un archivo de solo agregar (modo persistente completo). Si dos métodos de persistencia están habilitados en el servidor, el método de persistencia AOF se ejecuta de forma predeterminada;

2. Implementación

  • Persistencia de RDB: vuelca los registros de datos de Redis en la memoria al disco a intervalos regulares, que es similar a la función de instantánea.
  • Persistencia AOF: agregar solo archivo: el principio es escribir el registro de operaciones de Redis en el archivo de manera adjunta, que es aproximadamente en tiempo real.

3. La diferencia entre los dos

  1. La persistencia RDB se refiere a escribir una instantánea de un conjunto de datos en la memoria en el disco dentro de un intervalo de tiempo especificado. El proceso de operación real es bifurcar un subproceso. Primero, escriba el conjunto de datos en un archivo temporal. Después de que la escritura sea exitosa, reemplace el archivo anterior. , Utilice almacenamiento de compresión binaria.
    Inserte la descripción de la imagen aquí
  2. La persistencia AOF consiste en registrar cada operación de escritura y eliminación procesada por el servidor en forma de registro. La operación de consulta no se registrará. Se registra en forma de archivo. Puede abrir el archivo para ver el registro detallado de la operación.
    Inserte la descripción de la imagen aquí

1) Ventajas y desventajas de RDB

Ventaja:

  1. Una vez que se adopte este método, toda su base de datos de Redis solo contendrá un archivo, que es perfecto para la copia de seguridad de archivos. Por ejemplo, puede planear archivar las últimas 24 horas de datos una vez cada hora y también archivar los últimos 30 días de datos una vez al día. Mediante una estrategia de respaldo de este tipo, una vez que el sistema tiene una falla catastrófica, podemos recuperarnos muy fácilmente.
  2. Para la recuperación de desastres, RDB es una muy buena opción. Porque podemos comprimir fácilmente un solo archivo y transferirlo a otros medios de almacenamiento.
  3. Rendimiento máximo. Para el proceso de servicio de Redis, cuando comienza a persistir, lo único que debe hacer es desembolsar el proceso hijo, y luego el proceso hijo completará el trabajo de persistencia, de modo que pueda evitar en gran medida el proceso principal del servicio para realizar operaciones IO. .
  4. En comparación con el mecanismo AOF, si el conjunto de datos es grande, la eficiencia de inicio de RDB será mayor.

Desventajas:

  1. Si desea garantizar una alta disponibilidad de datos, es decir, evitar la pérdida de datos en la mayor medida posible, RDB no será una buena opción. Porque una vez que el sistema está inactivo durante el período de persistencia temporizado, los datos que no han tenido tiempo de escribir en el disco antes se perderán.
  2. Debido a que RDB ayuda a completar la persistencia de datos a través del subproceso de la bifurcación, si el conjunto de datos es grande, puede hacer que todo el servidor deje de servir cientos de milisegundos o incluso 1 minuto.

2) Ventajas y desventajas de AOF

Ventaja:

  1. Este mecanismo puede brindar una mayor seguridad de los datos, es decir, durabilidad de los datos. Redis proporciona 3 estrategias de sincronización, a saber, sincronización por segundo, sincronización por modificación y asincrónica. De hecho, la sincronización por segundo también se completa de forma asincrónica, y su eficiencia también es muy alta, la diferencia es que una vez que el sistema está inactivo, los datos modificados dentro de este segundo se perderán. Y cada vez que se modifica la sincronización, podemos considerarla como persistencia de sincronización, es decir, cada cambio de datos que se produzca se grabará inmediatamente en el disco. Se puede predecir que este método es el de menor eficiencia.
  2. Debido a que este mecanismo utiliza el modo de adición para la operación de escritura del archivo de registro, incluso si hay un tiempo de inactividad durante el proceso de escritura, el contenido existente del archivo de registro no se destruirá. Sin embargo, si solo escribimos la mitad de los datos en esta operación, el sistema se bloquea, no se preocupe, podemos usar la herramienta redis-check-aof para ayudarnos a resolver el problema de coherencia de los datos antes de que se inicie Redis la próxima vez.
  3. Si el registro es demasiado grande, Redis puede habilitar automáticamente el mecanismo de reescritura. Es decir, Redis escribe continuamente los datos modificados en el archivo de disco antiguo en modo anexar y, al mismo tiempo, Redis también creará un nuevo archivo para registrar qué comandos de modificación se han ejecutado durante este tiempo. Por lo tanto, la seguridad de los datos se puede garantizar mejor durante el cambio de reescritura.
  4. AOF contiene un archivo de registro claramente formateado y fácil de entender para registrar todas las operaciones de modificación. De hecho, también podemos completar la reconstrucción de datos a través de este archivo.
    Desventajas:
  5. Para el mismo número de conjuntos de datos, los archivos AOF suelen ser más grandes que los archivos RDB. RDB es más rápido que AOF cuando se recuperan grandes conjuntos de datos.
  6. Según diferentes estrategias de sincronización, si la cantidad de datos es relativamente grande, AOF suele ser más lento que RDB en términos de eficiencia operativa.

3) Escenarios de aplicación

  1. Dispuesto a sacrificar algo de rendimiento (elija AOF);
  2. A cambio de una mayor consistencia de caché, para garantizar la mayor integridad posible de la base de datos (elija AOF);
  3. Cuando esté dispuesto a escribir con frecuencia, no habilite la copia de seguridad a cambio de un mayor rendimiento.Cuando ejecute guardar manualmente, haga una copia de seguridad (RDB);

Tres, configuración del modo de persistencia RDB

1. Instale el servicio Redis

Necesita cargar el software Redis:
https://pan.baidu.com/s/1JlhmlSrK1xWerRE5oSgubA
Código de extracción: 3gj6

[root@Redis ~]# ls
anaconda-ks.cfg  redis-4.0.9.tar.gz
[root@Redis ~]# tar zxf redis-4.0.9.tar.gz -C /usr/src/
[root@Redis ~]# cd /usr/src/redis-4.0.9/
[root@Redis redis-4.0.9]# make && make PREFIX=/usr/local/redis install
[root@Redis redis-4.0.9]# ln -s /usr/local/redis/bin/* /usr/local/bin/		#创建软连接优化执行路径
[root@Redis redis-4.0.9]# cd utils/
[root@Redis utils]# ./install_server.sh 		#执行安装脚本文件
依次回车即可或自己定义

2. Resistencia de la colocación de RDB

[root@Redis ~]# vim /etc/redis/6379.conf 
 219 save 900 1			#开启 RDB 快照功能,在 900 秒内完成一个 key 值的变动会触发快照功能
 220 save 300 10		
 221 save 60 10000
 236 stop-writes-on-bgsave-error yes		# RDB 快照后台进程失败,不影响用户的写操作
 242 rdbcompression yes						#是否将 RDB 快照文件压缩,关闭后会增加性能
 251 rdbchecksum no							#关闭 RDB 快照文件的检查校验,增加性能
 254 dbfilename dump.rdb					#快照文件的名称
 264 dir /var/lib/redis/6379				#快照文件的存储路径
[root@Redis ~]# /etc/init.d/redis_6379 restart		#重启redis服务
Stopping ...
Redis stopped
Starting Redis server...
[root@Redis ~]# redis-cli 
127.0.0.1:6379> set xingming zhangsan
OK
127.0.0.1:6379> set nianling 23
OK
127.0.0.1:6379> keys *
1) "nianling"
2) "xingming"
127.0.0.1:6379> exit
[root@Redis ~]# reboot  	 #重启验证 key 值是否存在
[root@Redis ~]# redis-cli 
127.0.0.1:6379> keys *
1) "xingming"
2) "nianling"
127.0.0.1:6379> exit

Cuatro, configuración del modo de persistencia AOF

[root@Redis ~]# vim /etc/redis/6379.conf 
将所有 save 配置项都注释掉,表示关闭 RDB 快照功能
 219 #save 900 1
 220 #save 300 10
 221 #save 60 10000
 673 appendonly yes						#开启 AOFF 持久化方式
 677 appendfilename "appendonly.aof"	#指定持久化的文件
 703 appendfsync everysec				#频率,具体参数在下面表格中
 725 no-appendfsync-on-rewrite no		#如若设置为yes,则 redis 执行的命令会存放到缓冲区,待系统自动同步到硬盘
 744 auto-aof-rewrite-percentage 100	#若当前写入的 AOF 文件达到了上次 rewrite 文件大小的 100%,则触发 rewrite 操作          
 745 auto-aof-rewrite-min-size 64mb		#设置 AOF 持久化重写文件的最小值,当达到 60M 并且符合 100% 的条件时,则触发 rewrite 操作          

opción appendfsync y frecuencia de sincronización

Opciones Frecuencia de sincronización
siempre Cada comando de Redis debe escribirse en el disco de forma sincrónica. Esto reducirá seriamente el rendimiento de Redis
cada segundo Realice la sincronización una vez por segundo y muestre varios comandos de escritura en el disco duro
No Deje que el sistema operativo decida cuándo sincronizar

El proceso de generación de archivos AOF incluye específicamente tres pasos: adición de comandos, escritura de archivos y sincronización de archivos.
Una vez que Redis activa la función de persistencia AOF, después de que Redis ejecuta un comando, rastreará el comando de escritura ejecutado hasta el final del búfer dentro de Redis. Este proceso es el proceso de adición de comandos. A continuación, el comando de escritura del búfer se escribirá en el archivo AOF Este proceso es el proceso de escritura del archivo. Para el sistema operativo, llamar a la función de escritura no escribe inmediatamente los datos en el disco. Para poder escribir realmente los datos en el disco, también necesita llamar a la función fsync, incluso si el archivo está sincronizado. Solo después del proceso de sincronización de archivos, el archivo AOF realmente guarda los comandos de escritura de Redis en el disco.
La opción de configuración appendfsync se utiliza para configurar la frecuencia de sincronización del comando de escritura con el archivo. El significado del valor de cada opción se muestra en la tabla anterior. Si el valor es no, significa que el archivo AOF está escrito, pero no se realiza la sincronización del disco. Según el sistema Linux, la sincronización del disco se realiza por defecto. El valor predeterminado es 30s, y la eficiencia es la más alta;

[root@Redis ~]# /etc/init.d/redis_6379 restart		#重启redis服务
Stopping ...
Redis stopped
Starting Redis server...
[root@Redis ~]# redis-cli 
127.0.0.1:6379> keys *
1) "xingming"
2) "nianling"
127.0.0.1:6379> set AJBN AJBM
OK
127.0.0.1:6379> keys *
1) "xingming"
2) "AJBN"
3) "nianling"
[root@Redis ~]# cat /var/lib/redis/6379/appendonly.aof 
*2
$6
SELECT
$1
0
*3
$3
set
$8
xingming
$8
zhangsan
*3
$3
set
$8
nianling
$2
23
*3
$3
set
$4
AJBN
$4
AJBM
[root@Redis ~]# reboot			#重启验证 key 值是否存在
[root@Redis ~]# /etc/init.d/redis_6379 restart		#重启redis服务
Stopping ...
Redis stopped
Starting Redis server...
[root@Redis ~]# redis-cli 
127.0.0.1:6379> keys *
1) "AJBN"
2) "xingming"
3) "nianling"
127.0.0.1:6379> exit

Supongo que te gusta

Origin blog.csdn.net/weixin_46902396/article/details/109605742
Recomendado
Clasificación