Descripción general e instalación, uso y administración de Redis

Tabla de contenido

1. Base de datos no relacional NoSQL

1. Descripción general de NoSQL

2. La diferencia entre base de datos relacional y base de datos no relacional

(1) Diferentes métodos de almacenamiento de datos

(2) Diferentes métodos de expansión

(3) Soporte diferente para transacciones

3. Escenarios de uso de bases de datos no relacionales

2. Descripción general de Redis

1. Introducción

2. Ventajas

3. La razón por la que Redis lee y escribe rápido

4. Escenarios aplicables

3. Instalación y configuración de Redis

Cuarto, el uso de Redis

1. Herramienta de línea de comandos redis-cli (inicio de sesión)

2. Herramienta de prueba redis-benchmark (prueba)

3. Uso del comando redis

4. Comandos comunes de múltiples bases de datos de Redis

Cinco, gestión del rendimiento de Redis

1. Ver uso de memoria

2. Limpia fragmentos de memoria

(1) Cómo se produce la fragmentación de la memoria

(2) Tasa de fragmentación de la memoria

(3) Limpiar fragmentos de memoria

3. Uso de la memoria

4. Clave de recuperación interna


1. Base de datos no relacional NoSQL

1. Descripción general de NoSQL

        NoSQL (Not Only SQL) es el término general para bases de datos no relacionales. Las bases de datos distintas de las principales bases de datos relacionales se consideran no relacionales.

        No es necesario preconstruir bases de datos y tablas para definir la estructura de la tabla de almacenamiento de datos Cada registro puede tener diferentes tipos de datos y cantidad de campos (como texto, imágenes, videos, música, etc. en los chats grupales de WeChat).

        Las principales bases de datos NoSQL incluyen Redis, MongBD, Hbase, Memcached, ElasticSearch, TSD, etc.

2. La diferencia entre base de datos relacional y base de datos no relacional

(1) Diferentes métodos de almacenamiento de datos

La principal diferencia entre las bases de datos relacionales y no relacionales es la forma en que se almacenan los datos.

        Las bases de datos SQL son de naturaleza tabular , por lo que se almacenan en filas y columnas de tablas de datos . Las tablas de datos se pueden asociar entre sí y almacenarse en colaboración, y también es fácil extraer datos.

        Los datos de tipo NoSQL no son adecuados para el almacenamiento en las filas y columnas de la tabla de datos, sino que se agrupan en grandes porciones. Los datos no relacionales generalmente se almacenan en conjuntos de datos , como documentos, pares clave-valor o estructuras gráficas. Sus datos y sus características son el factor de influencia número uno en la elección de cómo almacenar y extraer sus datos.

(2) Diferentes métodos de expansión

La mayor diferencia entre las bases de datos relacionales y no relacionales está en la forma de expansión.Para soportar la creciente demanda, por supuesto, se requiere expansión.

        Las bases de datos SQL escalan verticalmente , lo que significa aumentar la potencia de procesamiento y usar computadoras más rápidas para que el mismo conjunto de datos se pueda procesar más rápido. Debido a que los datos se almacenan en tablas relacionales, es necesario superar los cuellos de botella en el rendimiento de las operaciones que pueden involucrar muchas tablas aumentando el rendimiento de la computadora. Aunque la base de datos sql tiene mucho espacio para la expansión, definitivamente alcanzará el límite superior de expansión vertical al final.

        Las bases de datos NoSQL escalan horizontalmente . Debido a que el almacenamiento de datos no relacionales se distribuye naturalmente, la expansión de las bases de datos NoSQL se puede realizar agregando servidores de bases de datos más comunes (nodos) al grupo de recursos para compartir la carga.

(3) Soporte diferente para transacciones

Si las operaciones de datos requieren una alta transaccionalidad o las consultas de datos complejas necesitan controlar el plan de ejecución, entonces la base de datos SQL tradicional es su mejor opción en términos de rendimiento y estabilidad.

        La base de datos SQL admite un control detallado sobre la atomicidad de las transacciones y es fácil revertir las transacciones.

        Aunque las bases de datos NoSQL también pueden usar operaciones de transacción, no pueden compararse con las bases de datos relacionales en términos de estabilidad. Por lo tanto, su verdadero valor es en términos de escalabilidad operativa y procesamiento de grandes volúmenes de datos.

3. Escenarios de uso de bases de datos no relacionales

Se puede utilizar para hacer frente a los tres problemas principales (alta concurrencia, alto rendimiento y alta disponibilidad) de los tipos de sitios web puramente dinámicos de la web 2.0.

  • Alto rendimiento: altos requisitos de lectura y escritura simultáneas para la base de datos;
  • Gran almacenamiento: requisitos para el almacenamiento y el acceso eficientes a datos masivos;
  • Alta escalabilidad y alta disponibilidad: requisitos de alta escalabilidad y alta disponibilidad de la base de datos.

        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 para el desarrollo de bases de datos web 2.0:

        Las bases de datos relacionales se enfocan en las relaciones y garantías de consistencia de datos;

        Las bases de datos no relacionales se centran en el almacenamiento y la alta eficiencia.

        Por ejemplo: en el entorno de la 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.

2. Descripción general de Redis

1. Introducción

        Redis (Remote Dictionary Server) es una base de datos NoSQL de código abierto escrita en lenguaje C.

        Redis se ejecuta en memoria y admite persistencia. Adopta la forma de almacenamiento clave-valor (par clave-valor), que es una parte indispensable de la arquitectura distribuida actual.

        El programa del servidor de Redis es un modelo de proceso único, es decir, se pueden iniciar varios procesos de Redis en un servidor al mismo tiempo, y la velocidad de procesamiento real de Redis depende completamente de la eficiencia de ejecución del proceso principal.

2. Ventajas

Alta velocidad de lectura y escritura de datos : 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 : admite operaciones de tipo de datos como clave-valor, cadenas, listas, hash, conjuntos y conjuntos ordenados.

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

Atomicidad : todas las operaciones de Redis son atómicas.

Admite copia de seguridad de datos : admite copia de seguridad de datos en modo maestro-salve.

3. La razón por la que Redis lee y escribe rápido

        Redis se ejecuta en la memoria , lo que evita operaciones que consumen mucho tiempo, como la E/S del disco.

        El módulo principal del procesamiento de comandos de Redis es de subproceso único , lo que reduce el costo de la competencia de bloqueos, la creación y destrucción frecuentes de subprocesos y reduce el consumo de cambio de contexto de subprocesos.

Nota: Los subprocesos múltiples recientemente agregados en Redis 6.0 solo usan la linealidad múltiple para procesar solicitudes de red, mientras que los comandos de lectura y escritura de datos aún se procesan en un solo subproceso.

El mecanismo de multiplexación de E/S         se adopta para reducir el consumo de E/S de la red y mejorar en gran medida la eficiencia de la concurrencia.

4. Escenarios aplicables

        Como base de datos basada en memoria, Redis es un caché de alto rendimiento que generalmente se usa en cachés de sesión, colas
, tablas de clasificación, contadores, artículos recientes más recientes, comentarios más recientes, suscripciones de publicación, etc.

        Redis es adecuado para escenarios con altos requisitos de datos en tiempo real, almacenamiento de datos con características de caducidad y eliminación, sin necesidad de persistencia o solo
consistencia débil y lógica simple.

3. Instalación y configuración de Redis

#将安装包放在/opt下
cd /opt
tar xf redis-5.0.7.tar.gz
cd redis-5.0.7/

#编译
make

#安装到指定目录
make install PREFIX=/usr/local/redis

También debe ir a utils/ en el paquete de instalación y ejecutar install_server.sh

Luego modifique la dirección de escucha en el archivo de configuración /etc/redis/6379.conf 

Cuarto, el uso de Redis

herramienta efecto
servidor redis Herramienta para iniciar redis
redis-benchmark Se utiliza para detectar la eficiencia operativa de redis en la máquina
redis-check-aof Arreglar el archivo persistente AOF
redis-verificar-rdb Reparar archivos persistentes RDB
redis-cli herramienta de línea de comandos redis

1. Herramienta de línea de comandos redis-cli (inicio de sesión)

2. Herramienta de prueba redis-benchmark (prueba)

redis-benchmark [opción] [valor de opción]
                                -h especifica el nombre de 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 SET/ GET valor en bytes Tamaño de datos
                                -k 1 significa mantener vivo para mantener la conexión; 0 significa reconectar reconexión
                                -r SET, GET, INCR usar clave aleatoria; SADD usar valor aleatorio
                                -P transmitir <numreg> solicitud a través de canalización
                                -q forzar salida redis solo muestra el valor de consulta/seg
                                --salida csv en formato CSV (texto del campo dividido)
                                -l generar un bucle, ejecutar pruebas para siempre
                                -t solo ejecutar una lista de comandos de prueba separados por comas
                                -I Modo inactivo (solo abrir N conexiones inactivas y esperar)

#向IP地址为192.168.109.133、端口为6379的Redis服务器发送100个并发连接与100000个请求测试性能
redis-benchmark -h 192.168.116.10 -p 6379 -c 100 -n 100000

#测试存取大小为100字节的数据包的性能
redis-benchmark -h 192.168.116.10 -p 6379 -q -d 100

#测试本机上Redis服务在进行set与lpush操作时的性能
redis-benchmark -t set,lpush -n 100000 -q

3. Uso del comando redis

(1) Almacenar pares clave-valor

ESTABLECER valor clave

(2) Obtener el valor de la clave

Obtener la clave

(3) Determine el tipo de datos de la clave (el tipo de datos predeterminado de redis es cadena)

tecla TIPO

Cinco tipos de datos en Redis

nombre tipo
Cadena cadena
Lista la lista
Picadillo picadillo
Colocar colección desordenada
Conjunto ordenado conjunto ordenado

(4) Tecla Ver

LLAVES * Ver todas las llaves

KEYS comodines Ver claves especificadas emparejadas por comodines

(5) Determinar si la clave existe

tecla EXISTE

(6) tecla Eliminar

tecla Supr

(7) Modificar el nombre de la clave

RENOMBRAR nombre de clave original nuevo nombre de clave     

El nuevo nombre de clave a cambiar ya existe, el valor de este nombre de clave se sobrescribirá (se recomienda que exista antes de cambiar el nombre) o use:

RENAMENX original key name new key name         // juzgando si el nuevo nombre de clave existe antes de la modificación, si existe, devuelve 0, si no existe, devuelve 1 y ejecuta la modificación

(8) Número de claves estadísticas

TAMAÑODBS

(9) Establecer contraseña

CONFIG ESTABLECER REQUIERE CONTRASEÑA contraseña

Verificar después de iniciar sesión con la contraseña AUTH       

(10) Ver contraseña actual

 CONFIG OBTENER REQUIREPASS

 (11) Eliminar contraseña

 ESTABLECER CONFIGURACIÓN REQUIERE PASO ''

4. Comandos comunes de múltiples bases de datos de Redis

        Redis admite varias bases de datos. Redis contiene 16 bases de datos de forma predeterminada, y los nombres de las bases de datos se nombran secuencialmente con números del 0 al 15 (el inicio de sesión predeterminado es la base de datos 0). Varias bases de datos son independientes entre sí y no interfieren entre sí.

(1) cambiar la base de datos

 SELECCIONE el número de la biblioteca

(2) Mover los datos a la biblioteca especificada

MOVER número de banco de claves

Cinco, gestión del rendimiento de Redis

1. Ver uso de memoria

memoria de información

mem fragmentation _ratio #tasa de fragmentación de memoria = used memory_rss / used memoryused

memory _rss # es la memoria que Redis aplica al sistema operativo.
memoria usada # es la memoria ocupada por los datos en Redis.
pico de memoria utilizada # El valor máximo del uso de memoria redis.

2. Limpia fragmentos de memoria

(1) Cómo se produce la fragmentación de la memoria

        Redis tiene su propio administrador de memoria interna para administrar la aplicación y la liberación de memoria con el fin de mejorar la eficiencia del uso de la memoria.

        Cuando se elimina el valor en Redis, la memoria no se libera directamente y se devuelve al sistema operativo, sino al administrador de memoria interna de Redis.

        Cuando solicite memoria en Redis, primero verifique si hay suficiente memoria disponible en su propio administrador de memoria.

        Este mecanismo de Redis mejora la tasa de utilización de la memoria, pero provocará que parte de la memoria en Redis no se use por sí sola pero no se libere, lo que provocará la fragmentación de la memoria.

(2) Tasa de fragmentación de la memoria

El seguimiento de la tasa de fragmentación de la memoria es muy importante para comprender el rendimiento de los recursos de la instancia de Redis

  • Es normal que la tasa de fragmentación de la memoria esté entre 1 y 1,5 . Este valor indica que la tasa de fragmentación de la memoria es relativamente baja y también indica que Redis no intercambia memoria.
  • Si la tasa de fragmentación de la memoria supera 1,5 , significa que Redis consume el 150 % de la memoria física real requerida , de la cual el 50 % es la tasa de fragmentación de la memoria.
  • Si la tasa de fragmentación de la memoria es inferior a 1 , significa que la asignación de memoria de Redis supera la memoria física y el sistema operativo está intercambiando memoria . Necesita aumentar la memoria física disponible o reducir el uso de memoria de Redis.

(3) Limpiar fragmentos de memoria

Versión de Redis por debajo de 4.0

        Debe ingresar el comando de guardado de apagado en la herramienta redis-cli para permitir que la base de datos de Redis ejecute la operación de guardado y cierre el servicio de Redis, y luego reinicie el servidor. Después de que el servidor Redis se reinicie, Redis devolverá la memoria inútil al sistema operativo y la tasa de fragmentación disminuirá.

Redis versión 4.0 o superior

        Ejecute config set activedefrag yes para habilitar la desfragmentación automática;

        Realizar purga de memoria , desfragmentación manual.

3. Uso de la memoria

        Si el uso de memoria de la instancia de redis excede la memoria máxima disponible, el sistema operativo comenzará a intercambiar memoria y espacio de intercambio, lo que resultará en un rendimiento muy reducido.

Formas de evitar el intercambio de memoria

  • Elija instalar una instancia de Redis para el tamaño de los datos almacenados en caché
  • Utilice el almacenamiento de estructura de datos Hash tanto como sea posible
  • Establezca el ciclo de vida TTL de la clave (valor de tiempo (s) del nombre de la clave setex)

4. Clave de recuperación interna

        La estrategia de limpieza de memoria garantiza una asignación razonable de los recursos de memoria limitados de Redis. De forma predeterminada, la estrategia de recuperación es prohibir la eliminación. Cuando se alcanza el umbral máximo establecido, se debe seleccionar una estrategia de recuperación de clave.

Modifique el valor del atributo maxmemory-policy en el archivo de configuración

volátil-lru Use el algoritmo LRU para eliminar datos del conjunto de datos con el tiempo de caducidad establecido (elimine la clave utilizada menos recientemente, para la clave con TTL establecido)
volátil-ttl Elija los datos que están a punto de caducar de la recopilación de datos que ha establecido el tiempo de caducidad (elimine la clave caducada más recientemente)
volátil-aleatorio Seleccione aleatoriamente los datos que se eliminarán de la recopilación de datos con un tiempo de caducidad establecido (eliminados aleatoriamente de la clave con TTL establecido)
allkeys-lru Use el algoritmo LRU para eliminar datos de todos los conjuntos de datos (elimine la clave menos utilizada, para todas las claves)
allkeys-random Seleccionar aleatoriamente la eliminación de datos del conjunto de datos (eliminar clave aleatoriamente)
sin convicción Está prohibido eliminar datos (no eliminar hasta que esté lleno y reportar un error)

Supongo que te gusta

Origin blog.csdn.net/wlc1213812138/article/details/131942191
Recomendado
Clasificación