Galería de mapas mentales Redis
Este es un mapa mental sobre Redis, con una introducción detallada y una descripción completa. ¡Espero que sea útil para los amigos interesados!
Editado a las 2023-12-21 17:36:42,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
asuntos
definición
Una transacción es una operación de aislamiento separada. Todas las operaciones de la transacción se serializarán y ejecutarán en orden. La ejecución de la transacción no será interrumpida por comandos enviados por otros terminales de servicio al cliente.
efecto
Concatene varios comandos para evitar que otros comandos salten a la cola
Orden
Tecla RELOJ [tecla...]
Antes de ejecutar multi, primero ejecute watch key1 [key2], que puede monitorear una (o más) claves. Si esta (o estas) claves son cambiadas por otros comandos antes de que se ejecute la transacción, la transacción se interrumpirá.
Multi
Los comandos ingresados ingresarán a la cola de comandos, pero no se ejecutarán. Esperarán a que se ejecute el comando Exec y luego los ejecutarán en secuencia.
ejecutivo
Ejecutar cola de comandos
desechar
Eliminar cola de comandos
Manejo de errores de transacción
La formación del equipo es exitosa y la ejecución es exitosa. Todos los comandos se ejecutarán de manera ordenada.
Si el equipo se forma con éxito, seleccione descartar y no se ejecutarán todos los comandos.
Si ocurre un error en un comando en la cola, toda la cola se cancelará durante la ejecución.
El equipo se forma con éxito, pero un determinado comando falla durante la ejecución. Excepto el comando incorrecto, se ejecutarán todos los demás comandos.
Las transacciones de Redis no son atómicas.
Tres características principales 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.
La diferencia entre transacciones de Redis y transacciones de Mysql (alrededor de ACID)
Persistencia
RDB
Configuración central
nombre del archivo de configuración dbfilename
ahorrar
¿Cuántas operaciones se realizaron en cuántos segundos?
Activar RDB
Activar guardar automáticamente
Bloqueará el proceso principal hasta que se complete la persistencia de RDB
Guardar manualmente: bgsave
Redis realizará operaciones de instantáneas de forma asincrónica en segundo plano y la instantánea también puede responder a las solicitudes de los clientes.
Puede obtener la hora de ejecución de la última instantánea a través de lastsave.
No bloquea el proceso principal.
Ejecutar comando de descarga
La ejecución del comando flusall también generará el archivo dump.rdb, pero está vacío y no tiene sentido.
El comando flushdb no genera el archivo dump.rdb
Salga de Redis normalmente
Más configuraciones en redis.conf
detener-escritura-en-bgsave-error
Cuando Redis no pueda escribir en el disco, desactive directamente la operación de escritura de Redis. Recomendar si
archivos comprimidos rdbcompression
Si no desea consumir CPU para la compresión, puede desactivar esta función. Recomendar si.
rdbchecksum comprueba la integridad
Después de almacenar la instantánea, también puede pedirle a Redis que utilice el algoritmo CRC64 para la verificación de datos.
Proceso de persistencia (instantánea de memoria)
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 después de la última persistencia pueden perderse
La función de Fork es copiar un proceso que es el mismo que el 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.
Ventaja
Adecuado para recuperación de datos a gran escala
Más adecuado para requisitos de integridad y coherencia de datos que no son altos
Ahorra espacio en disco
Rápida recuperación
Desventajas
Es posible que se pierdan todas las modificaciones de la última instantánea.
AOF
introducir
Registre cada operación de escritura en forma de registro. Los archivos solo se pueden agregar pero no reescribir.
No habilitado de forma predeterminada
agregar solo no
Cuando AOF y RDB están habilitados al mismo tiempo, se le dará prioridad a AOF.
proceso de persistencia
El comando de escritura solicitado por el cliente se agregará al búfer AOF.
El búfer AOF sincroniza las operaciones con el archivo AOF en el disco de acuerdo con la política de persistencia de AOF.
Cuando el archivo AOF excede la política de reescritura o se reescribe manualmente, el archivo AOF se reescribirá para comprimir la capacidad del archivo AOF.
Cuando el servidor Redis se reinicie, cargará las operaciones de escritura en el archivo AOF.
Configuración de frecuencia de sincronización
appendfsync siempre
Siempre sincronizado, cada escritura de Redis se registrará inmediatamente en el registro. El rendimiento es deficiente pero la integridad de los datos es mejor;
appendfsync cada segundo
Sincronice cada segundo, primero escriba el registro en el búfer de memoria del archivo AOF y luego escriba el contenido del búfer en el disco cada segundo. Si hay un tiempo de inactividad, los datos de este segundo pueden perderse.
appendfsync no
Redis no sincroniza activamente y deja el tiempo de sincronización al sistema operativo.
Ventaja
El mecanismo de copia de seguridad es más robusto y los datos no se pierden fácilmente
Archivos de registro legibles para manejar operaciones de error
Desventajas
Ocupa más espacio en disco que RDB
Recuperación lenta
Si la lectura y la escritura se sincronizan siempre, el rendimiento estará bajo presión.
Hay algunos errores que hacen que la recuperación sea imposible.
Estrategia de eliminación de clave caducada de Redis
Redis utiliza una combinación de estrategias de eliminación regular y eliminación diferida.
Eliminación periódica: de vez en cuando, las claves con tiempo de caducidad se seleccionan aleatoriamente, se verifican para ver si han caducado y se eliminan después de la caducidad.
Repita 10 veces cada 1 segundo, seleccione aleatoriamente 20 claves para verificar si han caducado. Si el 25% de las claves han caducado, repita este comportamiento.
Se perderán muchas claves caducadas
Eliminación diferida: cuando los datos caduquen, no se procesarán primero. Cuando se acceda a la clave caducada, se eliminarán.
Cambia espacio por tiempo
Si se omiten muchas claves caducadas y no se verifican, no se realizará la eliminación diferida. Se acumulará una gran cantidad de claves caducadas en la memoria, lo que provocará que la memoria de Redis se agote. En este momento, se utilizará el mecanismo de eliminación de memoria.
replicación maestro-esclavo
qué es
Una vez actualizados los datos del host, los datos se sincronizan automáticamente con el mecanismo maestro/esclavo de acuerdo con la política. El maestro es responsable de escribir y el esclavo es responsable de leer.
Qué puedes hacer
Separación de lectura y escritura, expansión del rendimiento.
Recuperación ante desastres y recuperación rápida para mejorar la disponibilidad
Cómo jugar
Iniciar múltiples servicios de redis
Configurar la biblioteca esclava
Ejecutar esclavo del puerto IP
Consultar información maestro-esclavo
replicación de información
Situaciones comunes
Un amo y dos sirvientes
¿Puede escribir la máquina esclava? ¿Es posible configurar?
No se puede escribir ni configurar.
¿Qué sucede después de que se cierra el host? ¿Está el esclavo en la posición superior o en espera?
La máquina esclava está en espera.
Después de que el maestro regresa y agrega un nuevo registro, ¿aún puede el esclavo copiarlo sin problemas?
Poder
¿Qué sucede después de que una de las máquinas esclavas falla? ¿Podrá seguir el ritmo del gran ejército tal como está?
Poder
pasando la antorcha
¿Pueden las máquinas con identidades duales de maestro y esclavo escribir datos? ?
No, mientras tengas la identidad del esclavo, no podrás escribir datos.
Principalmente anti-cliente
Si la máquina maestra no funciona, puede convertir manualmente la máquina esclava en la máquina maestra.
Principio de copia
Después de que el esclavo se inicie y se conecte exitosamente al maestro, enviará un comando de sincronización.
El maestro recibe el comando para iniciar el proceso de guardado en segundo plano y recopila todos los comandos recibidos para modificar el conjunto de datos. Una vez completado el proceso en segundo plano, el maestro transferirá todo el archivo de datos RDB al esclavo para completar una sincronización completa.
Copia completa: después de recibir los datos del archivo de la base de datos, el servicio esclavo los guarda y los carga en la memoria.
Replicación incremental: el maestro continúa pasando todos los nuevos comandos de modificación recopilados al esclavo para completar la sincronización.
Pero siempre que el maestro se vuelva a conectar, se realizará automáticamente una sincronización completa (replicación completa)
Modo centinela
Sentinel es un proceso de Redi que se ejecuta en modo de funciones y tiene tres tareas principales:
monitor
Envíe comandos PING a todas las bibliotecas maestro-esclavo para verificar si están activas. Si no responden dentro del tiempo especificado, se considerarán desconectadas.
Subjetivo fuera de línea
Si el centinela descubre que la respuesta de la biblioteca maestra o esclava al comando PING se agota, entonces el centinela actual primero lo marcará. Para "subjetivo fuera de línea
Objetivo fuera de línea
Si N/2 1 centinelas marcan la base de datos principal como subjetivamente fuera de línea, entonces la base de datos principal se marcará como "objetivamente fuera de línea".
Solo cuando la base de datos principal esté marcada como objetivamente fuera de línea, Sentinel elegirá una nueva base de datos principal.
Si solo hay un centinela, y debido a razones de la red o presión excesiva sobre la base de datos principal, la base de datos principal no responde al centinela a tiempo y el centinela la marca como subjetiva fuera de línea. En este momento, solo hay un centinela. Y se elegirá directamente una nueva base de datos principal. Si hay un centinela, la nueva base de datos principal se elegirá directamente. En un grupo, más de N/2 1 centinelas deben marcar la base de datos principal como subjetiva fuera de línea. Se marcará como objetivamente fuera de línea y luego los centinelas elegirán una nueva base de datos principal para reducir los errores de juicio.
Elige el maestro
Si la biblioteca maestra falla, se seleccionará una nueva biblioteca maestra de la máquina esclava.
El proceso de elección de una nueva base de datos maestra.
filtrar
A partir del estado actual en línea de la biblioteca, también es necesario determinar su estado de conexión de red anterior.
Puntaje
Prioridad de la biblioteca esclava
Copiar el progreso de la biblioteca
Número de identificación de la biblioteca esclava
notificar
Envíe la información de la nueva biblioteca maestra a otras bibliotecas esclavas, permita que otras bibliotecas esclavas establezcan conexiones con la nueva biblioteca maestra y realice la replicación de datos.
qué es
La versión automática orientada al cliente puede monitorear si el host tiene fallas en segundo plano. Si falla, cambiará automáticamente de la base de datos esclava a la base de datos principal según el número de votos.
Cómo jugar
Cree un nuevo archivo sentinel.conf, el nombre no debe ser incorrecto
Configura Sentinel y completa el contenido.
monitor centinela mymaster 127.0.0.1 6379 1
Entre ellos, mymaster es el nombre del servidor del objeto de monitoreo y 1 es el número mínimo de centinelas que aceptan migrar.
Iniciar centinela
/usr/local/bin
Ejecute redis-sentinel /myredis/sentinel.conf
Cuando el maestro cuelgue, se seleccionará un nuevo maestro entre los esclavos.
reglas electorales
prioridad
Valor predeterminado en redis.conf: prioridad de réplica 100, cuanto menor sea el valor, mayor será la prioridad.
Compensar
El desplazamiento se refiere a los datos más completos obtenidos del host original.
runido
Después de iniciar cada instancia de Redis, se generará aleatoriamente un runid de 40 dígitos (obtener y ver a través del servidor de información)
grupo
¿Qué es un clúster?
Expansión horizontal de Redis
Si algunos nodos del clúster fallan o no pueden comunicarse, el clúster puede continuar procesando solicitudes de comando.
Si la máquina maestra no funciona, la máquina esclava ascenderá automáticamente a maestra.
Configuración
modificación de la configuración del clúster redis
habilitado para clúster sí activa el modo de clúster
cluster-config-file nodes-6379.conf establece el nombre del archivo de configuración del nodo
cluster-node-timeout 15000 establece el tiempo de desconexión del nodo. Después de este tiempo (milisegundos), el clúster cambia automáticamente entre maestro y esclavo.
puesta en marcha
redis-cli --cluster create --cluster-replicas 1 192.168.11.101:6379 192.168.11.101:6380 192.168.11.101:6381 192.168.11.101:6389 192.168.11.101:6390 192. 168.11.101:6391
No utilice 127.0.0.1, utilice una dirección IP real
que son las tragamonedas
Un clúster de Redis contiene 16384 ranuras hash y cada clave de la base de datos pertenece a una de estas 16384 ranuras.
Para valores clave que no están en la misma ranura, no se pueden utilizar operaciones de múltiples claves como mget y mset.
Desventajas de la agrupación
No se admite la operación con múltiples teclas
No se admiten transacciones de Redis de claves múltiples. el script lua no es compatible
Mas complejo
Por qué un clúster requiere al menos tres nodos
Si un nodo está inactivo y más de la mitad de los nodos creen que está inactivo a través del mecanismo de votación de ping-pong, entonces el clúster estará inactivo. Si solo hay dos nodos y un nodo está inactivo, el otro nodo votará. Solo el 50%, pero la mitad de ellos, este clúster no fallará, por lo que se necesitan al menos tres nodos.
Por qué un clúster requiere al menos seis servidores
Dado que un clúster requiere al menos tres nodos y cada nodo requiere una máquina de respaldo, un clúster requiere al menos seis servidores.
Desarrollo de conexión JAVA Jedis
Dependencia: <artifactId>jedis</artifactId>
Grupo de conexiones JedisPool
establecerBloque cuando esté agotado
/ Ya sea para bloquear cuando se agota la conexión, falso informará una excepción, verdadero bloqueará hasta que se agote el tiempo de espera, el valor predeterminado es verdadero
establecerTestOnBorrow
Compruebe si la conexión está desactivada al recuperarla del grupo de conexiones
Cableado automático de objetos JedisPool
Cinco tipos de datos principales
solicitud
Uso básico
manual de instalación
redis-benchmark: una herramienta de prueba de rendimiento que se puede ejecutar en su propia computadora portátil para ver su rendimiento.
redis-check-aof: La reparación de archivos AOF problemáticos, rdb y aof se discutirá más adelante
redis-check-dump: soluciona el archivo dump.rdb problemático
redis-sentinel: utilizado por el clúster de Redis
redis-server: comando de inicio del servidor Redis
redis-cli: cliente, entrada de operación
Archivo de configuración redis.conf
Empezar en segundo plano
demonizar del no al sí
Inicie el servidor redis-server /myredis/redis.conf
Utilice el cliente para acceder a redis-cli
-p especifica el puerto
-c modo de clúster
Configuración relacionada con la red
unir
No escribir significa acceso ilimitado a todas las direcciones IP.
modo protegidomodo protegido
Habilitado de forma predeterminada Incluso si se acepta el acceso desde todas las direcciones IP, el acceso no puede ser exitoso.
Número de puerto
Predeterminado 6379
cola de conexión tcp-backlog
tiempo de espera tiempo de espera
¿Cuánto tiempo tarda en cerrarse un cliente inactivo? 0 desactiva esta función, es decir, la conexión nunca se desconectará.
tcp-keepalive detección de latidos del corazón de clientes
Si se establece en 0, no se realizará la detección de mantenimiento de actividad.
Configuración común
demonizar el hilo del demonio
La configuración predeterminada no es sí, que es un proceso demonio y se puede iniciar en segundo plano.
pidfile La ubicación donde se almacena el archivo pid
nivel de registro nivel de registro
depurar: imprimirá y generará una gran cantidad de información, adecuada para la fase de desarrollo/prueba
detallado: contiene mucha información menos útil, pero no es tan confuso como el nivel de depuración
aviso: Moderadamente detallado, adecuado para entornos de producción
Advertencia: registre únicamente mensajes de advertencia muy importantes y críticos.
nombre del archivo de registro
El valor predeterminado es la salida estándar del archivo de registro.
bases de datos establece el número de bases de datos
El número predeterminado de bases de datos es 16 y la base de datos seleccionada por defecto es 0
límite
maxclients número máximo de conexiones al servidor
El valor predeterminado son conexiones de 1W. Cuando se alcanza el límite superior, la conexión será rechazada.
memoria máxima
Se recomienda configurarlo; de lo contrario, la memoria estará llena y provocará que el servidor falle.
política de eliminación de memoria maxmemory-policy
volatile-lru: utiliza el algoritmo LRU para eliminar claves, solo claves con tiempo de vencimiento establecido (usadas menos recientemente);
volatile-ttl: Elimina aquellas claves con el valor TTL más pequeño, es decir, aquellas claves que caducan recientemente
volatile-random: Elimina claves aleatorias del conjunto caducado, solo claves con un tiempo de caducidad establecido
allkeys-lru: utilice el algoritmo LRU para eliminar claves de todas las claves configuradas
allkeys-random: elimina claves aleatorias de todas las claves configuradas
no desalojo: No expulsión. Para operaciones de escritura, solo se devuelve información de error.
límite de E/S
io-threads-do-reads Si se debe habilitar el subproceso múltiple de IO
El valor predeterminado es no. Si está habilitado, cámbielo a sí.
io-threads Número de subprocesos IO
Se recomienda configurar 2 o 3 subprocesos para una máquina de 4 núcleos y 6 subprocesos para una máquina de 8 núcleos. La cantidad de subprocesos debe ser menor que la cantidad de núcleos de la máquina y trate de no exceder 8.
Redis está cerrado
Apagado de instancia única
cierre de redis-cli
Apagado de múltiples instancias
redis-cli -p 6379 apagado
Multiplexación de E/S múltiple de un solo hilo
Redis6.0 introduce subprocesos múltiples
Base de datos NoSQL
¿Qué es una base de datos NoSQL?
No sigue los estándares SQL
No es compatible con ÁCIDO
atomicidad
consistencia
Aislamiento
persistencia
Supera con creces el rendimiento de SQL
Escena aplicable
Lectura y escritura de datos altamente simultánea
Lectura y escritura de datos masivos.
Altamente escalable para datos
Escenario no utilizado
Necesita soporte para transacciones
Requiere almacenamiento estructurado de consultas, procesamiento de relaciones complejas y consultas ad hoc
Consulta ad hoc: los usuarios pueden seleccionar de manera flexible las condiciones de consulta según sus propias necesidades y el sistema genera los informes estadísticos correspondientes en función de las selecciones del usuario.
Redis cinco tipos de datos principales
Tipo de cadena
aumentar
set <key><value>Agregar par clave-valor
setex <clave><tiempo de vencimiento><valor> Al configurar el valor de la clave, establezca el tiempo de vencimiento en segundos.
setnx <clave><valor>Establece el valor de la clave solo si la clave no existe
mset <clave1><valor1><clave2><valor2>Establece uno o más pares clave-valor al mismo tiempo
controlar
get <key> Consulta el valor clave correspondiente
strlen <clave> obtiene la longitud del valor
mget <key1><key2><key3> Obtener uno o más valores al mismo tiempo
getrange <clave><posición inicial><posición final> Obtenga el rango de valores, similar a la subcadena en Java, paquete frontal, paquete posterior
cambiar
incr <clave>
Aumentar el valor numérico almacenado en la clave en 1
Solo puede operar con valores numéricos. Si está vacío, el nuevo valor es 1.
decr <clave>
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 es -1.
incrby / decrby <clave><paso>aumenta o disminuye el valor numérico almacenado en la clave. Tamaño de paso personalizado.
borrar
tecla del
especial
append <clave><valor> agrega el <valor> dado al final del valor original
getset <clave><valor>
Reemplace lo antiguo con lo nuevo, establezca un valor nuevo y obtenga el valor anterior al mismo tiempo
El número de producto y el número de pedido se generan utilizando las características de número creciente de la cadena.
Tipo de lista
aumentar
lpush/rpush <clave><valor1><valor2><valor3> .... Inserta uno o más valores desde la izquierda/derecha.
controlar
lrange <tecla><inicio><detener>
Obtener elementos según el subíndice del índice (de izquierda a derecha)
lindex <key><index>Obtener elementos según el subíndice del índice (de izquierda a derecha)
llen <key> obtiene la longitud de la lista
cambiar
lset<clave><índice><valor>reemplaza el valor cuyo subíndice es índice en la clave de lista con valor
borrar
lrem <key><n><value>Eliminar n elementos iguales al valor de la izquierda (de izquierda a derecha)
especial
lpop/rpop <key>Emite un valor desde la izquierda/derecha. El valor está en la clave y el valor está en la clave.
rpoplpush <key1> <key2> escupe un valor del lado derecho de la lista <key1> y lo inserta en el lado izquierdo de la lista <key2>.
linsert <clave> antes de <valor><nuevo valor>Insertar <nuevo valor> después de <valor> para insertar el valor
Como lista de amigos, lista de fans, cola de mensajes, clasificación de las últimas noticias, etc. El método rpush equivale a poner el mensaje en la cola, y lpop/rpop equivale a tomar el mensaje de la cola para su consumo.
tipo de hash
aumentar
hset <clave><campo><valor> asigna <valor> a la clave <campo> en la colección <clave>
hmset <clave1><campo1><valor1><campo2><valor2>... Establecer valores hash en lotes
controlar
hget <clave1><campo> recupera el valor de la colección <clave1> <campo>
hmget <clave1><campo1> <campo2>... Obtener valores hash en lotes
hlen <key> obtiene el número de valores de campo en el hash
hexists<key1><field>Compruebe si el campo dado existe en la clave de la tabla hash
cambiar
hincrby <clave><campo><incremento> agrega incremento al valor del campo en la clave de la tabla hash (negativo significa resta)
hsetnx <clave><campo><valor> establece el valor del campo en la clave de la tabla hash en valor si y solo si el campo no existe
borrar
hdel <clave><campo> elimina el <campo> especificado en la colección <clave>
especial
hgetall <key> obtiene todos los campos y valores en
hkeys <key> enumera todos los campos del conjunto hash
hvals <key> enumera todos los valores del conjunto hash
Utilice un objeto para almacenar información del usuario, información del producto, información del pedido, etc.
Tipo de configuración Z
aumentar
zadd <clave><puntuación1><miembro 1><puntuación2><miembro 2>…
Agregue uno o más elementos miembro y sus valores de puntuación a la clave del conjunto ordenado
controlar
zcard<key> devuelve el número de elementos en el conjunto ordenado
zcount <key><min><max> cuenta el conjunto, el número de elementos en el intervalo de puntuación
zrange <clave><inicio><parada> [WITHSCORES] Ordenar de pequeño a grande
Devuelve los elementos de la clave del conjunto ordenado cuyos subíndices están entre <inicio><parada>
ConWithSCORES, las puntuaciones y valores se pueden devolver al conjunto de resultados.
zrevrange <key><start><stop> [WITHSCORES] Ordenar de grande a pequeño
clave zrangebyscore min max [con puntuaciones] [recuento de compensación límite]
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).
zrevrangebyscore key max min [withscores] [límite de recuento de compensación] (tenga en cuenta que el parámetro es tamaño)
Igual que el anterior, pero ordenado de mayor a menor.
zrank <key><member> devuelve el rango del miembro en la clave del conjunto ordenado. Los miembros del conjunto ordenado están ordenados según el valor de puntuación creciente (de pequeño a grande). La clasificación se basa en 0, es decir, el miembro con el valor de puntuación más pequeño ocupa el puesto 0.
zrevrank <clave><miembro> Obtenga la clasificación de los miembros en orden descendente de valor de puntuación (de mayor a menor).
cambiar
zincrby <key><increment><member > agrega un incremento a la puntuación del elemento
borrar
zrem <key><member>Eliminar el elemento con el valor especificado en la colección
especial
Clasificación: por ejemplo, un sitio web de vídeos necesita clasificar los vídeos subidos por los usuarios.
Tipo de conjunto
aumentar
sadd <clave><valor1><valor2> .....
Agregue uno o más elementos miembros a la clave de la colección. Se ignorarán los elementos miembros existentes.
controlar
smembers <key> saca todos los valores de la colección
scard<key> devuelve el número de elementos de la colección
ismember<key> <value> Consulta si el valor en la colección ya existe
cambiar
borrar
srem <clave><valor1><valor2> .... Eliminar un elemento de la colección
especial
spop <key> escupe un valor aleatorio de la colección
smove <origen><destino>valor mueve un valor en la colección de una colección a otra
sinter <key1><key2> devuelve el elemento de intersección de dos conjuntos.
sunion <key1><key2> devuelve los elementos de unión de dos conjuntos.
sdiff <key1><key2> devuelve los elementos de diferencia de los dos conjuntos (los de key1, excluyendo los de key2)
registro de votaciones Amigos comunes, intereses comunes, etiquetas de clasificación.