Galería de mapas mentales Redis
Este es un mapa mental sobre Redis. Los contenidos principales incluyen: 8. Persistencia de Redis, 7. Transacciones de Redis, 6. Publicar y suscribirse, 2. Inicio, 1. Instalar Redis 7.0, 5. Archivo de configuración de Redis, 4. Datos de Redis. tipo, 3. Comandos relacionados con la clave Redis (clave).
Editado a las 2024-03-28 15:31:48,Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Redis
1. Instale Redis7.0
1. Descargar; colóquelo en el directorio opt.
https://redis.io/download/
2. Descomprímalo en el directorio opt.
tar -zxvf redis-7.0.0.tar.gz
Después de la descompresión
3. Ingrese al directorio redis-7.0.11
Instalar gcc
yum instalar gcc-c
hacer
hacer la instalación
captura de pantalla
4. Directorio de instalación predeterminado
/usr/local/bin
/usr/local en Linux es similar a C:\Program Files en nuestro sistema Windows
Controlar
redis-benchmark: herramienta de prueba de rendimiento, ejecute este comando después de iniciar el servicio para ver cómo funciona su computadora portátil.
redis-check-aof: Reparar archivos AOF problemáticos
redis-check-dump: soluciona el archivo dump.rdb problemático
redis-cli: cliente, entrada de operación
redis-sentinel: utilizado por el clúster de redis
redis-server: comando de inicio del servidor Redis
5. Modifique el archivo de configuración redis.conf
2. Empezar
Ingrese al directorio de instalación predeterminado de Redis
redis-server: comando de inicio del servidor Redis
redis-cli: cliente, entrada de operación
Si se establece una contraseña: contraseña de autenticación
Empezar en segundo plano
Hacer una copia de seguridad de Redis.conf
demonizar del no al sí
[root@ecs-353138 redis-7.0.0]# redis-server ./redis.conf
Para iniciar redis, debe especificar un archivo de configuración. No hay un archivo de configuración explícito. De hecho, redis lee el archivo de configuración interno de forma predeterminada, no redis.conf en el directorio de instalación.
cierre
Apagado de instancia única: redis-cli -a cierre de contraseña
Apagado de múltiples instancias: especifique el cierre del puerto: redis-cli -p 6379 apagado
Desinstalar Redis
1. Detenga el servicio Redis
2. Elimine los archivos relacionados con Redis en el directorio /usr/local/lib
3. Comandos relacionados con la tecla Redis
llaves*
Ver todas las claves en la biblioteca actual
existe clave
Determinar si existe una determinada clave
escriba la clave
Comprueba de qué tipo es tu clave
tecla del
Eliminar datos clave especificados
clave de desvinculación
Seleccione la eliminación sin bloqueo según el valor
El comando Redis UNLINK es muy similar al comando DEL: se usa para eliminar la clave especificada. Al igual que DEL, si la clave no existe, se ignora. Sin embargo, este comando realiza la recuperación de memoria real en un hilo fuera del comando, por lo que no es un bloqueo, mientras que DEL sí lo es. De aquí proviene el nombre del comando: el comando UNLINK simplemente desconecta una clave del espacio de claves. La eliminación real se producirá de forma asincrónica más adelante.
caducar clave 10
10 segundos, establece el tiempo de vencimiento para la clave dada
tecla ttl
Compruebe cuántos segundos quedan para que caduquen. -1 significa que nunca caducará y -2 significa que ha caducado.
seleccione 0
Cambiar base de datos
desdimensionar
Ver la cantidad de claves en la base de datos actual
descargadb
Borrar biblioteca actual
enjuague
Mata todas las bibliotecas
4. Tipo de datos de Redis
Cinco tipos de datos básicos
cadena
Introducción
La cadena es el tipo más básico de Redis y una clave corresponde a un valor. El tipo String es binario seguro. Significa que la cadena de Redis puede contener cualquier dato. Por ejemplo, imágenes jpg u objetos serializados. Un valor de cadena en Redis puede ser de hasta 512 M.
Comandos comunes
establecer valor clave NX
NX: cuando la clave no existe en la base de datos, puede agregar el valor clave a la base de datos XX: cuando la clave existe en la base de datos, se puede agregar clave-valor a la base de datos, que es mutuamente excluyente con los parámetros de NX. EX: segundos de tiempo de espera clave PX: tiempo de espera clave en milisegundos, mutuamente excluyente con EX
Agregar pares clave-valor
obtener la clave
Consultar el valor clave correspondiente
agregar valor clave
Agrega el valor dado al final del valor original.
llave fuerte
Obtener la longitud del valor
valor clave setnx
Establezca el valor de la clave solo si la clave no existe
clave incr
Aumentar el valor numérico almacenado en la clave en 1
tecla decr
Disminuir el valor numérico almacenado en la clave en 1
Solo puede operar con valores numéricos. Si está vacío, el nuevo valor será 1 o -1.
tamaño del paso clave incrby / decrby
Aumenta o disminuye el valor numérico almacenado en la clave. Tamaño de paso personalizado
mset clave1 valor1 clave2 valor2
Establecer uno o más pares clave-valor al mismo tiempo
obtener clave1 clave2
Obtener uno o más valores al mismo tiempo
msetnx clave1 valor1 clave2 valor2
Atomicidad, si uno falla, todos fallan.
Establezca uno o más pares clave-valor al mismo tiempo si y solo si todas las claves dadas no existen
tecla getrange posición inicial posición final
Obtenga el rango de valores, similar a la subcadena en Java, paquete frontal, paquete posterior
valor de posición inicial de la tecla setrange
Sobrescriba el valor de cadena almacenado en la clave con valor, comenzando desde la posición inicial (el índice comienza desde 0)
valor del tiempo de vencimiento de la clave setex
Al configurar el valor clave, establezca el tiempo de vencimiento en segundos.
obtener valor clave
Reemplace lo antiguo con lo nuevo, establezca un valor nuevo y obtenga el valor anterior al mismo tiempo
estructura de datos
La estructura de datos de String es Cadena dinámica simple (SDS).
lista
Introducción
Valores múltiples de una sola clave, ordenados en orden de inserción, puede agregar un elemento al principio (izquierda) o al final (derecha) de la lista.
Comandos comunes
lpush / rpush clave valor1 valor2
Insertar uno o más valores de izquierda/derecha
lpop/rpop
Escupe un valor desde la izquierda/derecha. El valor está en la clave y el valor está en la clave.
rpoplpresionar tecla1 tecla2
escupe un valor del lado derecho de la lista key1 e insértalo en el lado izquierdo de la lista key2
Tecla lrange inicio y parada
Rango de edad 0 -1, significa obtener todo
Obtener elementos según el subíndice del índice (de izquierda a derecha)
índice de claves lindex
Obtener elementos según el subíndice del índice (de izquierda a derecha)
llave de llenado
Obtener longitud de la lista
insertar clave antes del valor nuevo valor
Inserte el valor de nuevo valor delante del valor
valor n clave lrem
Eliminar n valores de la izquierda (de izquierda a derecha)
lset valor de índice clave
Reemplace el valor cuyo subíndice es índice en la clave de lista con valor
estructura de datos
① La estructura de datos de List es QuickList. ② Primero, cuando los elementos de la lista son pequeños, se utilizará un almacenamiento de memoria continuo. Esta estructura es ziplist, que es una lista comprimida. ③ Cuando la cantidad de datos sea relativamente grande, se cambiará a lista rápida.
colocar
Introducción
La deduplicación automática y el conjunto son colecciones desordenadas de tipo cadena. La capa inferior es una tabla hash con un valor vacío. La complejidad de la adición, eliminación y consulta es O (1).
Comandos comunes
valor clave triste1 valor2
Agregue uno o más elementos miembros a la clave de la colección. Se ignorarán los elementos miembros existentes.
clave de miembros
Obtener todos los valores del conjunto
valor clave sismember
Determine si la clave establecida contiene el valor, hay 1, no hay 0
llave de tarjeta
Devuelve el número de elementos de la colección.
valor de edad srem1 valor2
Eliminar un elemento de la colección.
tecla spop
escupir un valor aleatorio de la colección
clave de miembro sustantivo sustantivo, femenino—
Tome aleatoriamente n valores de este conjunto. no será eliminado de la colección
mover el valor de origen y destino
Mover un valor en una colección de una colección a otra
sinterización llave1 llave2
Devuelve el elemento de intersección de dos colecciones.
clave sunion1 clave2
Devuelve los elementos de unión de dos colecciones.
sdiff clave1 clave2
Devuelve los elementos de diferencia de los dos conjuntos (los de la clave1, excluyendo los de la clave2)
estructura de datos
① La estructura de datos Set es un diccionario dict y el diccionario se implementa mediante una tabla hash. ② La implementación interna de HashSet en Java usa HashMap, pero todos los valores apuntan al mismo objeto. Lo mismo ocurre con la estructura establecida de Redis. También utiliza una estructura hash internamente y todos los valores apuntan al mismo valor interno.
picadillo
Introducción
Redis hash es una colección de pares clave-valor, una tabla de mapeo de campos y valores de tipo cadena es particularmente adecuada para almacenar objetos.
Comandos comunes
valor del campo clave hset
Asignar valor a la clave de campo en la colección de claves
hget campo clave
Obtener valor del campo de colección key1
hmset clave1 campo1 valor1 campo2 valor2
Establecer valores hash en lotes
campo clave hexistas
Compruebe si el campo dado existe en la clave de la tabla hash
llave hkeys
Listar todos los campos de este conjunto de hash
clave hvals
Enumere todos los valores del conjunto hash
incremento del campo clave hincrby
Agregue el incremento 1 -1 al valor del campo en la clave de la tabla hash
valor del campo clave hsetnx
Establezca el valor del campo en la clave de la tabla hash en valor si y solo si el campo no existe
estructura de datos
Hay dos estructuras de datos correspondientes al tipo Hash: ziplist (lista comprimida) y hashtable (tabla hash). Cuando la longitud del valor del campo es corta y el número es pequeño, use ziplist; de lo contrario, use hashtable
zset (conjunto ordenado)
Introducción
zset es muy similar a un conjunto ordinario. Es una colección de cadenas sin elementos repetidos. La diferencia es que cada miembro del conjunto ordenado está asociado con una puntuación. Esta puntuación se utiliza para ordenar los miembros del conjunto. fijado por la puntuación más alta. Los integrantes del conjunto son únicos, pero las partituras se pueden repetir.
Comandos comunes
zadd clave puntuación1 valor1 puntuación2 valor2
Agregue uno o más elementos miembro y sus valores de puntuación a la clave del conjunto ordenado
Tecla zrange inicio y parada [WITHSCORES]
Devuelve los elementos de la clave del conjunto ordenado cuyos subíndices están entre el inicio y el final. Con CONSCORES, las puntuaciones y valores se pueden devolver al conjunto de resultados.
clave zrangebyscore mín. máx.
Devuelve todos los miembros de la clave del conjunto ordenado cuyo valor de puntuación está entre mínimo y máximo (incluido igual a mínimo o máximo). Los miembros del conjunto ordenado están ordenados según el valor de puntuación creciente (de pequeño a grande)
clave zrevrangebyscore máximo mínimo
Cambiar para ordenar de mayor a menor
valor de incremento de clave zincrby
Agregar un incremento a la puntuación del elemento.
valor clave zrem
Eliminar el elemento con el valor especificado en la colección
clave zcount min max
Cuente el conjunto, el número de elementos en el intervalo de fracción.
valor clave zrank
Devuelve el rango del valor en el conjunto, comenzando desde 0
estructura de datos
Hash, la función del hash es asociar el valor del elemento y la puntuación de peso para garantizar la unicidad del valor del elemento. El valor de puntuación correspondiente se puede encontrar a través del valor del elemento.
Lista de salto. El propósito de la lista de salto es ordenar los valores de los elementos y obtener la lista de elementos de acuerdo con el rango de puntuación.
Tres tipos de datos avanzados
mapas de bits
Los mapas de bits en sí no son un tipo de datos; de hecho, son una cadena (clave-valor), pero pueden operar en los bits de la cadena.
HyperLogLog
Redis HyperLogLog es un algoritmo utilizado para estadísticas de cardinalidad. La ventaja de HyperLogLog es que cuando el número o volumen de elementos de entrada es muy grande, el espacio necesario para calcular la cardinalidad siempre es fijo y muy pequeño.
geoespacial
GEO: Geográfico, la abreviatura de información geográfica. Este tipo son las coordenadas bidimensionales del elemento, que son la latitud y longitud en el mapa. Basado en este tipo, redis proporciona operaciones comunes como configuración de longitud y latitud, consulta, consulta de rango, consulta de distancia, longitud y latitud Hash, etc.
5. Archivo de configuración de Redis
Configuración relacionada con la red
unir
De forma predeterminada, bind=127.0.0.1 solo puede aceptar solicitudes de acceso de esta máquina.
modo protegido
Establezca el modo de protección de acceso local en no
puerto
Puerto, predeterminado 6379
se acabó el tiempo
¿Cuántos segundos tarda un cliente inactivo en cerrarse? 0 significa desactivar esta función. es decir, nunca cerrar
tcp-keepalive
La unidad es segundos. Si se establece en 0, no se realizará la detección de Keepalive. Se recomienda configurarlo en 60.
Una detección de latidos para acceder a los clientes, una vez cada n segundos
General General
demonizar
Si se trata de un proceso en segundo plano (demonio), configúrelo en sí
archivo pid
La ubicación donde se almacena el archivo pid. Cada instancia generará un archivo pid diferente.
nivel de registro
Para entorno de producción, elija aviso o advertencia.
Especifique el nivel de registro. Redis admite un total de cuatro niveles: depuración, detallado, aviso y advertencia.
archivo de registro
Nombre del archivo de registro
bases de datos 16
Establezca el número de bibliotecas. El valor predeterminado es 16. La base de datos predeterminada es 0. Puede usar el comando SELECT <dbid> para especificar la identificación de la base de datos en la conexión.
SEGURIDADSeguridad
configurar la clave
LÍMITESlímites
clientes maximos
Establezca a cuántos clientes puede conectarse Redis al mismo tiempo
El valor predeterminado es 10000 clientes
Si se alcanza este límite, redis rechazará nuevas solicitudes de conexión y responderá con "el número máximo de clientes alcanzado" a estos solicitantes de conexión.
memoria máxima
política de memoria máxima
muestras-maxmemory
6. Publica y suscríbete
¿Qué son publicar y suscribirse?
La publicación y suscripción de Redis (pub/sub) es un modelo de comunicación de mensajes: el remitente (pub) envía mensajes y los suscriptores (sub) reciben mensajes.
El cliente se suscribe al canal.
Cuando se publica un mensaje en este canal, el mensaje se enviará al cliente suscrito.
Implementación de comandos
Abra un cliente para suscribirse al canal 1
suscríbete al canal 1
Abra otro cliente y publique el mensaje hola en el canal1.
publicar canal1 hola
Los 2 devueltos son el número de suscripciones.
7. Transacciones de Redis
1. Definición
Una transacción de Redis es una operación única y aislada: todos los comandos de la transacción se serializan y ejecutan en orden. Durante la ejecución de la transacción, esta no será interrumpida por solicitudes de comando enviadas por otros clientes.
La función principal de las transacciones de Redis es conectar varios comandos en serie para evitar que otros comandos salten a la cola.
2. Multi, Exec, descartar
① A partir de la entrada del comando Multi, los comandos ingresados se ingresarán en la cola de comandos en secuencia, pero no se ejecutarán hasta que se ingrese Exec, y Redis ejecutará los comandos en la cola de comandos anterior en secuencia. ② Durante el proceso de formación del equipo, puedes abandonar la formación del equipo descartándolo.
Formación del equipo exitosa, presentación exitosa
Se informó un error durante la etapa de formación del equipo y la presentación falló.
La formación del equipo fue exitosa y la presentación fue exitosa o fallida.
3. Manejo de errores de transacción
Si un comando en la cola informa un error, todas las colas se cancelarán durante la ejecución.
Si se informa un error para un comando durante la fase de ejecución, solo no se ejecutará el comando que informó el error y otros comandos se ejecutarán sin reversión.
4. Tres características de las transacciones de Redis
operaciones de cuarentena separadas
Todos los comandos de una transacción se serializan y ejecutan secuencialmente. Durante la ejecución de la transacción, esta no será interrumpida por solicitudes de comando enviadas por otros clientes.
Sin concepto de nivel de aislamiento.
Los comandos en la cola no se ejecutarán realmente hasta que se envíen, porque no se ejecutarán instrucciones antes de enviar la transacción.
No hay garantía de atomicidad
Si un comando de la transacción no se ejecuta, los comandos posteriores se seguirán ejecutando sin reversión.
8. Persistencia de Redis
RDB (base de datos de Redis)
¿Qué es?
Escriba una instantánea de los datos establecidos en la memoria en el disco dentro de un intervalo de tiempo específico, que también se denomina instantánea en la jerga. Cuando se restaura, el archivo de instantánea se lee directamente en la memoria.
Cómo se realiza la copia de seguridad
Redis creará (bifurcará) un proceso secundario por separado para la persistencia. Primero escribirá los datos en un archivo temporal. Una vez completado el proceso de persistencia, este archivo temporal se utilizará para reemplazar el último archivo persistente. Durante todo el proceso, el proceso principal no realiza ninguna operación de IO, lo que garantiza un rendimiento extremadamente alto. Si se requiere una recuperación de datos a gran escala y la integridad de la recuperación de datos no es muy sensible, el método RDB es más eficiente que el método AOF. . de alta eficiencia. La desventaja de RDB es que los datos posteriores a la última persistencia pueden perderse.
Tenedor
La función de Fork es copiar un proceso que sea igual al proceso actual. Todos los datos (variables, variables de entorno, contador de programa, etc.) del nuevo proceso tienen los mismos valores que el proceso original, pero es un proceso completamente nuevo y sirve como proceso hijo del proceso original.
En un programa de Linux, fork() generará un proceso hijo que es exactamente el mismo que el proceso padre, pero el proceso hijo a menudo realizará llamadas al sistema ejecutivo a partir de entonces. Por razones de eficiencia, Linux ha introducido la "tecnología de copia en escritura".
Generalmente, el proceso padre y el proceso hijo compartirán el mismo segmento de memoria física. Solo cuando cambie el contenido de cada segmento en el espacio del proceso, el contenido del proceso padre se copiará al proceso hijo.
archivo volcado.rdb
Configure el nombre del archivo en redis.conf, el valor predeterminado es dump.rdb
Ventaja
Adecuado para recuperación de datos a gran escala
Es más adecuado utilizarlo si los requisitos de integridad y coherencia de los datos no son elevados.
Ahorra espacio en disco
Rápida recuperación
insuficiente
Se realiza una copia de seguridad en un intervalo determinado durante el ciclo de copia de seguridad, por lo que si Redis deja de funcionar inesperadamente, se perderán todas las modificaciones posteriores a la última instantánea.
Resumir
AOF (Agregar solo archivo)
¿Qué es?
Registre cada operación de escritura en forma de registro (guardado incremental), registre todas las instrucciones de escritura ejecutadas por Redis (las operaciones de lectura no se registran), solo agregue archivos pero no pueda reescribir archivos, redis leerá al principio Este archivo reconstruye los datos. En otras palabras, cuando se reinicia Redis, las instrucciones de escritura se ejecutarán de adelante hacia atrás según el contenido del archivo de registro para completar el trabajo de recuperación de datos.
Proceso de persistencia de AOF
AOF no está habilitado de forma predeterminada
AOF y RDB están habilitados al mismo tiempo, ¿a quién escucha redis?
AOF y RDB están habilitados al mismo tiempo y el sistema toma los datos de AOF de forma predeterminada (los datos no se perderán)
Ventaja
El mecanismo de copia de seguridad es más robusto y la probabilidad de pérdida de datos es menor
insuficiente
Ocupa más espacio en disco que RDB
La restauración de copias de seguridad es más lenta.
Resumir