Compartir tecnología

Configuración y optimización de NoSQL redis

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Introducción básica y comparación de la base de datos redis.

Redis (RemoteDictionaryServer, tipo de diccionario remoto) es una base de datos NoSQL de código abierto escrita en lenguaje C. Redis se ejecuta en función de la memoria y admite la persistencia. Adopta una forma de almacenamiento clave-valor (par clave-valor) y es una parte indispensable de la arquitectura distribuida actual.

1. Base de datos no relacional

NoSQL (NoSQL= Not Only SQL), que significa "no sólo SQL", es el término general para bases de datos no relacionales. Las bases de datos NoSQL convencionales incluyen Redis, MongBD, Hbase, CouhDB, etc. Las bases de datos no relacionales anteriores son completamente diferentes en sus métodos de almacenamiento, estructuras de almacenamiento y escenarios de uso. Por eso pensamos que es una colección de bases de datos no relacionales, no un término general como bases de datos relacionales. En otras palabras, las bases de datos distintas de las bases de datos relacionales convencionales pueden considerarse no relacionales. La base de datos NOSQL se considera el producto de base de datos de próxima generación debido a sus ventajas de expansión no relacional, distribuida, de código abierto y horizontal.

2. Base de datos relacional

Una base de datos relacional es una base de datos estructurada basada en un modelo relacional y generalmente está orientada a registros. Procesa datos en bases de datos con la ayuda de conceptos y métodos matemáticos como el álgebra de conjuntos. El modelo relacional se refiere al modelo de tabla bidimensional, por lo que una base de datos relacional es una organización de datos compuesta por tablas bidimensionales y las relaciones entre ellas. En el mundo real, varias entidades y diversas relaciones entre entidades pueden representarse mediante modelos relacionales. La declaración SQL (lenguaje de consulta de datos estándar) es un lenguaje basado en una base de datos relacional y se utiliza para recuperar y operar datos en una base de datos relacional.

3. Antecedentes de las bases de datos no relacionales

Con el auge de los sitios web Web2.0, las bases de datos relacionales quedan expuestas cuando se trata de sitios web Web2.0, especialmente los sitios web Web2.0 puramente dinámicos con datos masivos y SNS (servicios de redes sociales) de alta concurrencia, es decir, servicios de redes sociales. que son difíciles de resolver, como el problema de los tres altos.

(1) Alto rendimiento: altos requisitos de lectura y escritura simultáneas para la base de datos

Los sitios web Web2.0 generarán páginas dinámicas y proporcionarán información dinámica en tiempo real en función de la información personalizada del usuario, por lo que no se puede utilizar la tecnología estática de páginas dinámicas. Por lo tanto, la carga concurrente de la base de datos es muy alta, alcanzando generalmente más de 10,000 solicitudes de lectura y escritura/s. La base de datos relacional todavía apenas puede soportar decenas de miles de solicitudes de consulta, pero si hay decenas de miles de solicitudes de escritura de datos, el disco duro I0 ya no puede soportarlo. Para los sitios web de BBS normales, a menudo hay muchas solicitudes de escritura de datos simultáneas.

(2) Almacenamiento enorme: requisitos para un almacenamiento y acceso eficientes a datos masivos

Los sitios web de redes sociales como Facebook y Friendfeed generan una gran cantidad de información dinámica de los usuarios todos los días. Por ejemplo, Friendfeed generará no menos de 250 millones de información dinámica de usuarios en un mes. Para bases de datos relacionales, la eficiencia de las consultas es muy baja cuando se ejecutan consultas SQL en una tabla que contiene 250 millones de registros.

(3) Alta escalabilidad y alta disponibilidad: requisitos para una alta escalabilidad y alta disponibilidad de las bases de datos

En la arquitectura web, la base de datos es la más difícil de escalar horizontalmente. Cuando el número de usuarios y visitas al sistema de aplicaciones aumenta día a día, la base de datos no puede simplemente expandir su rendimiento y capacidad de carga agregando hardware y nodos de servidor como servicios web. Especialmente para algunos sitios web que necesitan brindar servicios las 24 horas del día, las actualizaciones y expansiones de la base de datos a menudo van acompañadas de tiempo de inactividad y migración de datos, y la carga de trabajo es muy grande.

Las bases de datos relacionales y las bases de datos no relacionales tienen sus propias características y escenarios de aplicación. La estrecha combinación de las dos traerá nuevas ideas al desarrollo de bases de datos Web2.0. Deje que las bases de datos relacionales se centren en las relaciones y las bases de datos no relacionales en el almacenamiento. Por ejemplo, en un entorno de base de datos MySQL donde la lectura y la escritura están separadas, los datos a los que se accede con frecuencia se pueden almacenar en una base de datos no relacional para mejorar la velocidad de acceso.

4.Ventajas de Redis

Tiene velocidades de lectura y escritura de datos extremadamente altas. La velocidad de lectura de datos puede alcanzar hasta 110.000 veces/s y la velocidad de escritura de datos puede alcanzar hasta 81.000 veces/s.

Admite tipos de datos enriquecidos, no solo admite datos de tipo clave-valor simples, sino que también admite operaciones de tipos de datos como cadenas, listas, hashes, conjuntos y conjuntos ordenados.

Admite la persistencia de datos en la memoria se pueden guardar en el disco y se pueden cargar nuevamente para usarlos al reiniciar.

Atómico, todas las operaciones de Redis son atómicas.

Admite copia de seguridad de datos, es decir, copia de seguridad de datos en modo maestro-salvado.

Redis es una base de datos basada en memoria y el almacenamiento en caché es uno de sus escenarios de aplicación más comunes. Además, los escenarios de aplicación comunes de Redis también incluyen operaciones para obtener los datos N más recientes, clasificación de aplicaciones, contadores de aplicaciones, relaciones de almacenamiento, sistemas de análisis en tiempo real y registros.

2. Instalación y optimización de redis.

1: instalación

[root@localhost ~]# systemctl stop firewalld // En el entorno experimental, desactivar el firewall no tiene ningún efecto. No se recomienda desactivarlo en el entorno de producción.

[root@localhost ~]# setenforce 0 //Apague el kernel, lo que bloqueará la ejecución de la aplicación.

[root@localhost ~]# yum -y install gcc* zlib-devel //Descarga las herramientas necesarias para descomprimir el paquete tar

[raíz@localhost ~]#tar xvzf redis-4.0.9.tar.gz //redis es una aplicación gratuita y de código abierto. Puede descargar este paquete desde el sitio web oficial.

[raíz@localhost ~]#cd redis-4.0.9/

[root@localhost redis-4.0.9]# hacer

Aviso:

Al realizar puede aparecer el siguiente mensaje de error:

Solución 1: usarhacer MALLOC=libc especifica el asignador de memoria para libccompilar

Solución 2: limpiar && maque destilería

[root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install

[root@localhost ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/

[root@localhost redis-4.0.9]# cd /root/redis-4.0.9/utils/

[root@localhost utilidades]# ./install_server.sh

Observación:

Archivo de configuración: /etc/redis/6379.conf //Ruta del archivo de configuración

Archivo de registro: /var/log/redis_6379.log //Ruta del archivo de registro

Directorio de datos: /var/lib/redis/6379 //Ruta del archivo de datos

Ejecutable: /usr/local/redis/bin/redis-server //ruta del archivo ejecutable

Cli ejecutable: /usr/local/redis/bin/redis-cli //Herramienta de línea de comandos del cliente

2: Ver el proceso

[root@localhost utilidades]# netstat -anpt | grep redis

3: control de servicio

[root@localhost ~]#/etc/init.d/redis_6379 detener

[root@localhost ~]#/etc/init.d/redis_6379 inicio

[root@localhost ~]#/etc/init.d/redis_6379 reiniciar

[root@localhost ~]#/etc/init.d/redis_6379 estado

4: Modificación de parámetros de configuración

[root@localhost ~]#vim /etc/redis/6379.conf

enlazar 127.0.0.1 192.168.10.101    //Dirección del host de escucha

puerto 6379 //puerto

demonizar sí //Habilitar proceso demonio

archivo pid /var/run/redis_6379.pid //Especificar archivo PID

Aviso de nivel de registro //nivel de registro

archivo de registro /var/log/redis_6379.log //Especificar archivo de registro

[root@localhost~]#/etc/init.d/redis_6379 reiniciar

[root@localhost utilidades]# netstat -anpt | grep redis

3. Herramienta de comando de Redis

Ø redis-server: herramienta para iniciar Redis;

Ø redis-benchmark: se utiliza para detectar la eficiencia de ejecución de Redis en esta máquina;

Ø redis-check-aof: reparar el archivo de persistencia AOF;

Ø redis-check-rdb: reparar archivos de persistencia RDB;

Ø redis-cli: herramienta de línea de comandos de Redis.

1: herramienta de línea de comando redis-cli

(1) Conéctese a redis local

[root@localhost ~]# redis-cli

127.0.0.1:6379>

(2) Pruebe si el servicio redis está iniciado

127.0.0.1:6379> ping

APESTAR

(3) Conexión remota

[root@localhost ~]#redis-cli -h 192.168.10.101 -p 6379

2: Consigue ayuda

Øayuda@<group> :Obtener<group> lista de comandos en ;

ayuda<command> : Obtenga ayuda para un comando;

ayuda<tab> : Obtenga una lista de temas que pueden ayudar.

Observación:

ayuda<tab> : Obtenga una lista de temas que pueden ayudar.

Después de escribir ayuda, presione la tecla tabulador

(1)Ver todos los comandos relacionados con el tipo de datos Lista

127.0.0.1:6379&gt;ayuda @lista

(2)Ver la ayuda del comando para el comando set

127.0.0.1:6379&gt;conjunto de ayuda

3: herramienta de prueba de referencia de redis

redis-benchmark es la herramienta oficial de prueba de rendimiento de Redis que puede probar eficazmente el rendimiento de los servicios de Redis.

Ø -h: especifica el nombre del host del servidor;

Ø -p: especifica el puerto del servidor;

Ø -s: especifica el socket del servidor;

Ø -c: especifica el número de conexiones simultáneas;

Ø -n: especifica el número de solicitudes;

Ø -d: especifica el tamaño de datos del valor SET/GET en bytes;

Ø -k:1=mantener vivo 0=reconectar;

Ø -r: SET/GET/INCR usa claves aleatorias, SADD usa valores aleatorios;

Ø -P: Transmisión por tuberías<numreq> preguntar;

Ø -q: Forzar el cierre de redis. Solo se muestran los valores de consulta/seg;

Ø --csv: salida en formato CSV;

Ø -l: Genera un bucle y ejecuta la prueba de forma permanente;

Ø -t: ejecuta solo una lista de comandos de prueba separados por comas;

Ø -I: Modo inactivo. Abra solo N conexiones inactivas y espere.

(1) Rendimiento de la solicitud de prueba

[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000 //Envía 100 conexiones simultáneas y 100000 pruebas de solicitud al servidor Redis con dirección IP 192.168.10.101 y rendimiento del puerto 6379

Observación:

Ø -h: especifica el nombre del host del servidor;

Ø -p: especifica el puerto del servidor;

Ø -c: especifica el número de conexiones simultáneas;

Ø -n: especifica el número de solicitudes;

====== MSET (10 teclas) ======

100.000 solicitudes completadas en 1,02 segundos

100 clientes paralelos ##100 conexiones simultáneas

Carga útil de 3 bytes

Mantenerse vivo: 1

87,25% &lt;= 1 milisegundo ##87.25% de los tiempos de ejecución de comandos son menores o iguales a 1 milisegundo

99,90% &lt;= 2 milisegundos

100,00% &lt;= 2 milisegundos

97943,19 solicitudes por segundo #Número de solicitudes por segundo

(2) Probar el rendimiento del acceso

[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100

Observación:

Ø -h: especifica el nombre del host del servidor;

Ø -p: especifica el puerto del servidor;

Ø -d: especifica el tamaño de datos del valor SET/GET en bytes;

Ø -q: Forzar el cierre de redis. Solo se muestran los valores de consulta/seg;

PING_INLINE: 121506,68 solicitudes por segundo //¿Cuántas operaciones PING se completan por segundo?

PING_BULK: 124378,11 solicitudes por segundo

SET: 121654.50 solicitudes por segundo //¿Cuántas veces por segundo se completa el valor de la clave SET?

GET: 122100,12 solicitudes por segundo //¿Cuántos valores de clave GET se completan por segundo?

INCR: 118764,84 solicitudes por segundo //¿Cuántas cuentas atómicas se completan por segundo?

LPUSH: 112612,61 solicitudes por segundo

RPUSH: 118623,96 solicitudes por segundo

LPOP: 107874,87 solicitudes por segundo

RPOP: 114416,48 solicitudes por segundo

SADD: 123304,56 solicitudes por segundo

HSET: 122249,38 solicitudes por segundo

SPOP: 128040,97 solicitudes por segundo

LPUSH (necesario para evaluar LRANGE): 116686,12 solicitudes por segundo

LRANGE_100 (primeros 100 elementos): 40016,00 solicitudes por segundo

LRANGE_300 (primeros 300 elementos): 11991,85 solicitudes por segundo

LRANGE_500 (primeros 450 elementos): 7381,71 solicitudes por segundo

LRANGE_600 (primeros 600 elementos): 5230,67 solicitudes por segundo

MSET (10 claves): 92421,44 solicitudes por segundo //Múltiples claves v por segundolaueNúmero de solicitudes

(3)Configurar y empujar el rendimiento de la operación

[root@localhost ~]# redis-benchmark -t set,lpush -n 100000 -q //Pruebe el rendimiento del servicio Redis en esta máquina durante las operaciones set y lpush.

Observación:

Ø -n: especifica el número de solicitudes;

Ø -q: Forzar el cierre de redis. Solo se muestran los valores de consulta/seg;

Ø -t: ejecuta solo una lista de comandos de prueba separados por comas;

SET: 121951,22 solicitudes por segundo

LPUSH: 127226,46 solicitudes por segundo

4. Redis Comandos comunes de bases de datos

Ø colocar: Almacenar datos. El formato de comando básico es. Establecer valor clave

Ø conseguir: Obtener datos, el formato de comando básico es obtener la clave

1llave Comandos relacionados

existir Redis en la base de datos, con llave Los comandos relevantes incluyen principalmente los siguientes.

1) agregar pares clave-valor

usar llaves El comando puede tomar una lista de valores clave que se ajusten a las reglas. Por lo general, se puede combinar.* ,? opciones a utilizar.

127.0.0.1:6379>conjunto k1 1

DE ACUERDO

127.0.0.1:6379>Conjunto k2 2

DE ACUERDO

127.0.0.1:6379>Conjunto k3 3

DE ACUERDO

127.0.0.1:6379>Conjunto v1 4

DE ACUERDO

127.0.0.1:6379>conjunto v5 5

DE ACUERDO

(2) Ver todas las claves en la base de datos actual

127.0.0.1:6379>LLAVES  *  

1) "maestro"

2) "k1"

3) "k2"

4) "k3"

5) "v1"

6) "v5"

127.0.0.1:6379>conjunto v22 5

DE ACUERDO

(3) Ver la base de datos actual con en datos al principio

127.0.0.1:6379>LLAVES v*    

1) "v1"

2) "v5"

3) "v22"

(4) Ver la base de datos actual con en Contiene cualquier bit de datos después del comienzo.

127.0.0.1:6379>LLAVES v?   

1) "v1"

2) "v5"

(5) Ver la base de datos actual con en comienzo en Contiene dos dígitos de datos cualesquiera después del comienzo.

127.0.0.1:6379>LLAVES v??   

1) "v22"

2:existe

existe El comando puede determinar si el valor clave existe.

127.0.0.1:6379>existe maestro

(entero) 1

El resultado es 1, lo que significa maestro la clave existe

127.0.0.1:6379>existe el te

(entero) 0

El resultado es 0, lo que significa la clave no existe

3:del

del El comando puede eliminar el especificado. llave

127.0.0.1:6379>llaves *

1) "maestro"

2) "v1"

3) "v22"

4) "k3"

5) "k1"

6) "k2"

7) "v5"

127.0.0.1:6379> del v5

(entero) 1

127.0.0.1:6379>obtener v5

(nulo)

4:tipo

usar tipo El comando se puede obtener. llave correspondiente valor tipo de valor

127.0.0.1:6379>tipo k1

cadena

Observación:

Tipos de datos soportados por redis

  • Cadena: el tipo más simple, que es set y get normal, que se utiliza para el almacenamiento en caché de valores clave.
  • Hash: una estructura similar a un mapa. Generalmente, los datos estructurados, como un objeto, se pueden almacenar en caché en redis.
  • Lista: la lista es una lista ordenada. Puede utilizar la lista para almacenar algunas estructuras de datos de tipo lista, como listas de fans, listas de comentarios de artículos, etc.
  • Set: Set es una colección desordenada que elimina automáticamente los duplicados.
  • Conjunto ordenado: el conjunto ordenado es un conjunto ordenado, que está deduplicado pero se puede ordenar al escribir, se otorga una puntuación y se clasifica automáticamente según la puntuación.

5:rebautizar

rebautizar El comando es para un existente. llave rebautizar

En uso real, se recomienda utilizar existe Comando para ver el objetivo llave existe y luego decide si ejecutar rebautizar comando para evitar sobrescribir datos importantes

127.0.0.1:6379>teclas v*

1) "v1"

2) "v22"

127.0.0.1:6379>cambiar nombre v22 v2

DE ACUERDO

127.0.0.1:6379>teclas v*

1) "v1"

2) "v2"

127.0.0.1:6379>obtener v1

"4"

127.0.0.1:6379>obtener v2

"5"

127.0.0.1:6379>cambiar nombre v1 v2

DE ACUERDO

127.0.0.1:6379>obtener v1

(nulo)

127.0.0.1:6379>obtener v2

"4"

6:Renacimiento

Renacimiento La función del comando es modificar el existente. llave Realice un cambio de nombre y verifique si existe el nuevo nombre.

usarRenacimiento Cuando se cambia el nombre del comando, si el objetivo llave Si existe, no se le cambiará el nombre.

127.0.0.1:6379>llaves *

1) "maestro"

2) "k3"

3) "k1"

4) "k2"

5) "v2"

127.0.0.1:6379>conseguir profesor

"Zhanglong"

127.0.0.1:6379>obtener v2

"4"

127.0.0.1:6379>profesor de renamenx v2

(entero) 0

127.0.0.1:6379>llaves *

1) "maestro"

2) "k3"

3) "k1"

4) "k2"

5) "v2"

127.0.0.1:6379>conseguir profesor

"Zhanglong"

127.0.0.1:6379>obtener v2

"4

7:tamaño de la base de datos

tamaño de la base de datos El propósito del comando es ver la base de datos actual. llave Número de.

127.0.0.1:6379> tamaño de la base de datos

(entero) 5

5. Comandos comunes para múltiples bases de datos.

1: Cambiar entre múltiples bases de datos

Redis Incluido por defecto sin ningún cambio. 16 base de datos, el nombre de la base de datos es un número 0-15 ser nombrado en orden

(1)Cambiar al número de serie 10 base de datos

127.0.0.1:6379>Seleccione 10

DE ACUERDO

(2)Cambiar al número de serie 15 base de datos

127.0.0.1:6379[10]>Seleccione 15

DE ACUERDO

(3)Cambiar al número de serie 0 base de datos

127.0.0.1:6379[15]>seleccionar 0

2: Mover datos entre múltiples bases de datos

Redis Las múltiples bases de datos son relativamente independientes hasta cierto punto, por ejemplo, en la base de datos 0 Almacenar arriba k1 datos, en otros 1-15 No se puede ver en la base de datos.

127.0.0.1:6379>Conjunto k1 100

DE ACUERDO

127.0.0.1:6379>obtener k1

"100"

127.0.0.1:6379>Seleccione 1

DE ACUERDO

127.0.0.1:6379[1]>obtener k1

(nulo)

127.0.0.1:6379[1]>seleccionar 0 //Cambiar a la base de datos de destino 0

DE ACUERDO

127.0.0.1:6379>obtener k1 //Comprobar si los datos de destino existen

"100"

127.0.0.1:6379>mover k1 1 //base de datos 0 medio k1 Mover a la base de datos 1 medio

(entero) 1

127.0.0.1:6379>Seleccione 1 //Cambiar a la base de datos de destino 1

DE ACUERDO

127.0.0.1:6379[1]>obtener k1 //Ver datos movidos

"100"

127.0.0.1:6379[1]> seleccionar 0

DE ACUERDO

127.0.0.1:6379> obtener k1 //en la base de datos 0 No se puede ver en k1 valor

(nulo)

3: borrar los datos en la base de datos

Para borrar los datos de la base de datos actual, utilice Descarga HDB

Implementación del comando; borre todos los datos de la base de datos, use DESCARGAR Implementación de comandos

6. Persistencia de Redis

Redis Todos los datos se almacenan en la memoria y luego se guardan de forma asincrónica en el disco de vez en cuando.(Se llamaModo semipersistente”); También puedes escribir cada cambio de datos en un añadir solo archivo (aof)en(Se llamaModo de persistencia total”)

Dado que los datos de Redis se almacenan en la memoria, si no se configura la persistencia,Redis Después de reiniciar, se pierden todos los datos.Por lo tanto, es necesario habilitarRedis La función de persistencia guarda datos en el disco. Redis Después de reiniciar, los datos se pueden recuperar del disco.Redis Se proporcionan dos métodos para la persistencia, uno es Banco de Desarrollo RegionalBase de datos Redis Persistencia (el principio es ReidasTiempo de registro de la base de datos en memoria vertedero al disco Banco de Desarrollo Regional persistencia), el otro es Año NuevoSólo añadir archivoPersistencia (el principio es Reidas El registro de operaciones se escribe en el archivo adjunto).

1:Banco de Desarrollo Regional y Año Nuevo La diferencia

(1) ¿Qué es RDB?

El método predeterminado

La persistencia de RDB es el proceso de generar una instantánea de los datos del proceso actual y guardarla en el disco duro. El proceso de activación de la persistencia de RDB se divide en activación manual y activación automática.

Mecanismo de activación: la activación manual corresponde a los comandos guardar y bgsave respectivamente.

comando guardar: bloquea el servidor Redis actual hasta que se completa el proceso RDB. En casos con una gran cantidad de memoria, provocará un bloqueo de tiempo. No recomendado para su uso en entornos en línea.

Comando bgsave: el proceso de Redis ejecuta la operación fork (función utilizada para crear un proceso) para crear un proceso hijo. El proceso de persistencia RDB es responsable del proceso hijo y finaliza automáticamente una vez completado. El bloqueo sólo ocurre durante la fase de bifurcación.

(2) Ventajas y desventajas de RDB:

Ventajas de RDB:

RDB es un archivo binario compacto y comprimido que representa una instantánea de los datos de Redis en un momento determinado. Es muy adecuado para copias de seguridad, copias completas y otros escenarios. Por ejemplo, realice una copia de seguridad de bgsave cada 6 horas y copie el archivo RDB a la máquina remota o al sistema de archivos para la recuperación ante desastres.

Redis carga RDB y recupera datos mucho más rápido que el método AOF.

Desventajas de RDB:

Los datos en modo RDB no pueden lograr persistencia en tiempo real/persistencia de segundo nivel. Porque cada vez que se ejecuta bgsave, se realiza una operación de bifurcación para crear un proceso hijo, lo cual es una operación pesada y el costo de ejecución frecuente es demasiado alto.

Los archivos RDB se guardan en un formato binario específico. Durante la evolución de las versiones de Redis, existen múltiples formatos de versiones de RDB. Existe el problema de que la versión anterior del servicio Redis no es compatible con la nueva versión del formato RDB.

2. ¿Qué es la AOF?

Persistencia de AOF (añadir solo archivo): registre cada comando de escritura en un registro independiente y luego vuelva a ejecutar el comando en el archivo AOF para restaurar los datos al reiniciar. La función principal de AOF es resolver el problema de la persistencia de datos en tiempo real. Ahora es la corriente principal de la persistencia de Redis.

Criterios para elegir entre los dos:

Sacrificar algo de rendimiento a cambio de una mayor coherencia de la caché (Año Nuevo),

Cuando las operaciones de escritura sean frecuentes, no habilite la copia de seguridad a cambio de un mayor rendimiento y espere la operación manual. ahorrar cuando, haga una copia de seguridad nuevamente (Banco de Desarrollo Regional

Observación:

Si es necesario cargar un archivo persistente después de reiniciar el reinicio, se seleccionarán los archivos AOF.

Si RDB se habilita primero y luego AOF, y RDB persiste primero, AOF sobrescribirá el contenido del archivo RDB.

3:Redis Configuración de persistencia

(1)Banco de Desarrollo Regional Configuración de persistencia

[root@localhost ~]# vim /etc/redis/6379.conf

Abra 6379.conf Después del archivo, busque ahorrar, puede ver la información de configuración como se muestra a continuación.

  • Ø guardar 900 1: Después de 900 segundos (15 minutos), si al menos 1 clave cambia, volque la instantánea de la memoria.
  • Ø guardar 300 10: Después de 300 segundos (5 minutos), si al menos 10 claves han cambiado, descargue la instantánea de la memoria.
  • Ø guardar 60 10000: después de 60 segundos (1 minuto), si al menos 10000 claves han cambiado, descargue la instantánea de la memoria.
  • dbfilename dump.rdb: nombre de archivo RDB ##254 línea
  • dir /var/lib/redis/6379: ruta del archivo RDB ##264 línea
  • rdbcompression sí: si se debe comprimir la línea ## 242

(2) AOF Configuración de persistencia

existir Redis Hay tres métodos de sincronización en el archivo de configuración, son:

  • appendonly sí: habilitar la persistencia de AOF (el valor predeterminado es no) ##673 línea
  • appendfilename "appendonly.aof": nombre de archivo AOF ##677 línea
  • # appendfsync siempre
  • appendfsync cada segundo
  • # sin sincronización de apéndice

siempre: persistencia síncrona, cada vez que los datos cambian, se escribirán en el disco inmediatamente

eachsec: recomendado de forma predeterminada, graba de forma asincrónica cada segundo (valor predeterminado)

no: sin sincronización, dejando que el sistema operativo decida cómo sincronizar

  • aof-load-truncado sí ##769行

Ignore la última instrucción potencialmente problemática

[root@localhost ~]#/etc/init.d/redis_6379 reiniciar

(2) Reescritura de AOF

para poder resolver Año Nuevo Si el tamaño del archivo continúa aumentando, los usuarios pueden informar a Redis enviar BGREWRITEAOFOrden.BGREWRITEAOF El comando se eliminará mediante Año Nuevo comandos redundantes en el archivo para anular (volver a escribirAño Nuevoarchivo, hacer Año Nuevo Mantenga el tamaño del archivo lo más pequeño posible.

127.0.0.1:6379&gt; bgrewriteaof

Se inició la reescritura del archivo adjunto en segundo plano

# Cuando el registro es BGREWRITEAOF,sisin anexar sincronización al reescribirEstablecido en sí, lo que significa que las nuevas operaciones de escritura no se sincronizarán con fsync, sino que solo se almacenarán temporalmente en el búfer. Para evitar conflictos con la operación de E/S del disco, espere hasta que se complete la reescritura antes de escribir. El valor predeterminado en Redis es no

no-appendfsync-on-rewrite no

# Cuando el tamaño del archivo AOF actual es el doble del tamaño del archivo AOF durante la última reescritura del registro, se produce la operación BGREWRITEAOF.

porcentaje de reescritura automática de aof 100

Observación:

100 se refiere aLa tasa de crecimiento del archivo AOF se refiere a la tasa de crecimiento del archivo AOF actual en comparación con la última reescritura.100 es el doble

# El valor mínimo del archivo AOF actual para ejecutar el comando BGREWRITEAOF para evitar BGREWRITEAOF frecuentes debido al tamaño pequeño del archivo cuando se inicia Reids por primera vez.

reescritura automática de aof tamaño mínimo 64 mb

7. Gestión del desempeño

1: Ver información de la memoria

192.168.9.236:7001> memoria de información

used_memory:1210776 #El tamaño de la memoria utilizada,en bytes
used_memory_human:1.15M # Pantalla con unidad,En m
used_memory_rss:7802880 # ¿Cuánta memoria ocupa Redis desde la perspectiva del sistema operativo?
used_memory_rss_human:7.44M # Pantalla con unidad
maxmemory:1073741824 # Tamaño máximo de memoria
maxmemory_human:1.00G # Pantalla con unidad

2: estrategia de reciclaje

política de memoria máxima: Estrategia de reciclaje

Ø volátil-lru: Permite Redis Elija el utilizado menos recientemente de todo el conjunto de datos llave Borrar

Ø TTL volátilEliminar según el tiempo de vencimiento de la clave 

Ø volátil-aleatorio: seleccione aleatoriamente datos para eliminarlos de la recopilación de datos con un tiempo de vencimiento establecido;

Ø todas las teclas-lru:usar Unidad de Investigación Local (LRU) Los algoritmos eliminan datos de todos los conjuntos de datos;

Ø todas las teclas son aleatorias: Seleccionar datos aleatoriamente para eliminarlos de la recopilación de datos;

Ø No desalojo: Desactiva la eliminación de datos (valor predeterminado)

Observación:

Establecer el tiempo de vencimiento de la clave

caducado v1 10

v1 tiene un tiempo de caducidad de 10 segundos

Observación:

cuando Redis Necesidad de reclamar uno debido a la presión de la memoria. llave hora,Redis La primera consideración es no reciclar los datos más antiguos, sino los datos utilizados menos recientemente. llave o a punto de caducar llave Elija uno al azar de llave, eliminado del conjunto de datos

8. Establecer contraseña para redis

1: método de configuración

Método 1. Establezca la contraseña a través del archivo de configuración redis.conf

Busque la palabra clave requirepass, seguida de la contraseña. Está comentada de forma predeterminada, es decir, no se requiere contraseña de forma predeterminada, de la siguiente manera:

Abra el comentario, configúrelo como su propia contraseña y reinicie

Método 2. Establecer contraseña nombrando

Utilice redis-cli para conectarse a redis y ejecutar el siguiente comando

conjunto de configuración requirepass 123456

Una vez completada la ejecución, no es necesario reiniciar. Deberá ingresar su contraseña cuando salga del cliente e inicie sesión nuevamente.

2.Método de conexión

1. Ingrese su contraseña al conectarse

[root@localhost bin]# ./redis-cli -a 123456

2. Conéctese primero y luego ingrese la contraseña.

[root@localhost bin]# ./redis-cli127.0.0.1:6379&gt; autenticación 123456

3: método de cierre

[root@localhost bin]# ./redis-cli -a 123456 apagado

4: diferencia

1) La contraseña establecida modificando el archivo de configuración tendrá efecto permanentemente; la contraseña establecida mediante el comando tendrá efecto temporalmente y dejará de ser válida después de reiniciar.

2) La modificación de la contraseña establecida en el archivo de configuración requiere un reinicio para que surta efecto; use la contraseña establecida por el comando para que entre en vigencia después de cerrar sesión e iniciar sesión nuevamente, y dejará de ser válida después de reiniciar.

3) La prioridad del comando es mayor que la prioridad del archivo de configuración