1. Tipo de datos de cadena:
Operaciones comunes para cadenas:
SET key value
Almacene pares clave-valor, SET sobrescribe los valores antiguos, independientemente del tipoMSET key value [key value ...]
Pares de clave-valor de cadena de la tienda por lotesSETNX key value
Almacene un par clave-valor inexistente, si la clave existe, no haga nadaGET key
Obtenga el valor correspondiente a la clave según la claveMGET key [key ...]
Obtenga pares de clave-valor de cadena en lotesDEL key
Eliminar el par clave-valor correspondiente a la claveEXPIRE key seconds
Establecer el tiempo válido para el valor clave dado
Suma y resta atómica
INCR key
Agregue 1 al número correspondiente al valor claveDECR key
Disminuya el valor almacenado por clave en 1INCRBY key increment
Añadir incremento a la matriz de almacenamiento de clavesDECRBY key increment
Reste el incremento de la matriz almacenada por la clave
Escenario de aplicación:
-
Solo el valor de cache:
SET key value
,GET key
-
Objeto Cache:
SET user:1 value(json字符串)
;
Depósito:MSET user:1:name zhangsan user:1:age 10
Tomar:MGET user:1:name user:1:age
mejor que el formato JSON para facilitar la manipulación atributo único, que el mejor desempeño, la elección óptimaHASH
-
Bloqueos distribuidos:
SETNX product:10001 true
// Enviar de nuevo 1 para indicar que el bloqueo fue exitoso, no lo use si hay desventajas
SETNX product:10001 true
// Enviar de nuevo 0 para indicar que el bloqueo falló
DEL product:10001
// Liberar el bloqueo
SET product:10001 true ex 10 nx
// Evitar que el programa se cierre inesperadamente resultando en un punto muerto -
El uso de
estadísticas de lectura de contador en Redis:INCR article:readcount:{文章Id}
Estadísticas de lectura de artículosGET article:readcount:{文章Id}
-
El ID único del sistema distribuido genera
INCRBY orderId 1000
redis para generar el número de serie para mejorar el rendimiento.
Estructura 2.HASH
Operaciones comunes
HSET key field value
// Almacenar el valor clave de una clave de tabla hashHSETNX key field value
// Almacena el valor clave de una clave de tabla hash inexistenteHMSET key field value [field value ...]
Almacene múltiples pares clave-valor en una clave de tabla hashHGET key field
Obtener el valor clave de un campo en una tabla hashHMGET key field [field ...]
Obtenga los valores clave de varios campos en la clave de la tabla hashHDEL key field [field ...]
Eliminar el valor de la clave de campo en la clave de la tabla hashHLEN key
El número de campos en la clave de la tabla hashHGETALL key
Devuelve todos los pares clave-valor en la clave de la tabla hashHINCRBY key field increment
Agregue un incremento incremental al valor del campo en la clave de la tabla hash
Escenario de aplicación
-
Almacenamiento de objetos
HSET user:10001 name zhangsan age 10
// Establecer propiedades de objeto
HGET user:10001 name age
// Obtener información de atributos -
Escenario de carrito de compras
de comercio electrónico Estructura de datos del carrito de compras de comercio electrónico:- Usar ID de usuario como clave
- ID del producto es campo
- La cantidad de productos es valor
Operación del carrito de compras:
- Añadir producto->
HSET cart:1001 10088 1
- Aumenta el número->
HINCRBY cart:1001 10088 1
- Número total de productos->
HLEN cart:1001
- Eliminar producto
HDEL cart:1001 10088
- Obtenga todos los artículos en el carrito de compras->
HGETALL cart:1001
3.Listar estructura de datos
Comandos comunes
LPUSH key value [value ...]
Inserte uno o más valores en el encabezado de la lista de claves (más a la izquierda)RPUSH key value [value ...]
Inserte uno o más valores en el encabezado de la lista de claves (extremo derecho)LPOP key
Eliminar y devolver el elemento de encabezado de la lista de clavesRPOP key
Retire y devuelva el elemento de cola de la llaveLRANGE key start stop
Devuelve el elemento del intervalo especificado en la clave, el desplazamiento del intervalo se especifica al iniciar y detenerBLPOP key [key ...] timeout
Aparece un elemento desde la cabeza de la tecla. Si no hay ningún elemento en la tecla, se bloqueará y esperará, bloqueará el tiempo de espera, si el tiempo de espera es 0, significa bloquear todo el tiempoBRPOP key [key ...] timeout
Aparece un elemento desde el final de la tabla de claves, si no hay ningún elemento en la clave, bloqueará la espera, bloqueará el tiempo de espera, si el tiempo de espera es 0, siempre bloqueará
Escenario de aplicación
-
Estructuras de datos comunes
- Pila = LPUSH + LPOP-> Salida avanzada de FILO
- Cola = LPUSH + RPOP-> FIFO primero en entrar, primero en salir
- Bloqueo de MQ (cola de bloqueo) = LPUSH + BRPOP
-
Flujo de mensajes de cuenta pública de Weibo y WeChat
El ejemplo se centra en el uso de llantas de repuesto de número público WeChat y Mac Talk en Redis:
- Mac Talk lanzó el ID de mensaje 10018->
LPUSH msg:{订阅人Id} 10018
- La llanta de refacción dijo que el automóvil lanzó el mensaje ID 10019->
LPUSH msg:{订阅人Id} 10019
- Ver las últimas noticias suscritas, como 6->
LRANGE msg:{订阅人Id} 0 5
Estructura 4.SET
Comandos comunes
SADD key member [member ...]
Ponga uno o más miembros en la clave, ignore si el elemento existeSREM key member [member ...]
Eliminar uno o más miembros de la clave de colecciónSMEMBERS key
Devuelve todos los elementos en la clave de colecciónSCARD key
El número de elementos en la clave de colección.SISMEMBER key member
Determinar si miembro es un elemento en claveSRANDMEMBER key [count]
Contar elementos al azar de la clave, los elementos no se eliminan de la claveSPOP key [count]
Aleatoriamente tome elementos de conteo de la clave y elimine los elementos de la claveSINTER key [key ...]
Operación de intersecciónSINTERSTORE destination key [key ...]
Almacene el resultado de la intersección en el nuevo destino de recolecciónSUNION key [key ...]
Operación sindicalSUNIONSTORE destination key [key ...]
Guarde el resultado de la unión en el nuevo destino
:SDIFF key [key ...]
operación de diferencia,
Escenario de aplicación
- Modelo de lotería
El uso de loterías participantes en Redis en el ejemplo:- Haz clic para participar en el sorteo para unirte a la colección->
SADD key {userId}
- Ver todos los usuarios que participan en el sorteo->
SMEMBERS key
- Ganadores del conteo de sorteos->
SRANDMEMBER key [count]/SPOP key [count]
- Haz clic para participar en el sorteo para unirte a la colección->
- Me gusta, sigue y recopila en Weibo y WeChat
El uso del modelo similar en Redis en el ejemplo:
-
Me gusta->
SADD like:{消息id} {用户id}
-
A diferencia de->
SREM like:{消息id} {用户id}
-
Comprueba si al usuario le gusta->
SISMEMBER like:{消息id} {用户id}
-
Obtenga una lista de usuarios que le gustaron->
SMEMBERS like:{消息id}
-
Obtenga el número de me gusta->
SCARD like:{消息id}
-
WeChat Weibo sigue el modelo:
Ejemplo de WeChat sigue el modelo utilizado en Redis:- Gente Zhang San sigue->
zhangsanSET->{lisi,sima,luban}
- Gente que Li Si sigue->
lisiSET->{zhangsan,sima,luban,qiaofeng}
- Gente que Wang Wu sigue->
wangwuSET->{zhangsan,lisi,luban,qiaofeng,duanyu}
- Las personas que están preocupadas por Zhang San y Li Si->
SINTER zhangdanSET lisiSET
- Joe Smith también preocupado por la atención de la gente Doe -> lista zhangsanSET para cada miembro de la lista de juzgar
SISMEMBER simaSET lisi
,SISMEMBER lubanSET lisi
- Gente que Zhang San puede conocer->
SDIFF lisiSET zhangsanSET
- Gente Zhang San sigue->
-
Cribado de productos básicos de la plataforma de comercio electrónico de operación colectiva: el uso de condiciones de cribado de productos en redisSADD brand:HUAWEI p30
SADD brand:xiaomi mi-6X
SADD brand:IPhone iphone8
SADD os:android p30 mi-6X
SADD cpu:brand:intel p30 mi-6X
SADD ram:8G p30 mi-6X iphone8
SINTER os:android cpu:brand:intel ram:8G
->{p30 mi-6X}
Estructura de datos de SortedSet
Comandos comunes
ZADD key score member [[score member] [score member] ...]
Agregue elementos con puntajes a la combinación de teclas ordenadaZREM key member [member ...]
Eliminar clave de la colección ordenadaZSCORE key member
Devuelve el valor de puntuación de los miembros miembros en la clave ordenadaZINCRBY key increment member
Agregue el incremento a la puntuación del elemento miembro en la clave de conjunto ordenadaZCARD key
Devuelve el número de elementos de la clave ordenadaZRANGE key start stop [WITHSCORES]
Obtenga elementos de la clave de conjunto ordenada del subíndice de inicio para detener el subíndice en orden positivoZREVRANGE key start stop [WITHSCORES]
Obtenga los elementos de la clave de conjunto ordenada del subíndice de inicio para detener el subíndice en orden inversoZUNIONSTORE destination numkeys key [key ...]
Cálculo de la uniónZUNIONSTORE destination numkeys key [key ...]
Cálculo de intersección
Escenario de aplicación
- Escena
de la tabla de clasificación El uso de la tabla de clasificación de Weibo en Redis:- Haga clic en Noticias->
ZINCRBY hotNews:20190819 1 守护香港
- Mostrar los diez primeros del día->
ZREVRANGE hotNews:20190819 0 10 WITHSCORES
- Lista de búsqueda de siete días->
ZUNIONSTORE hotNews:20190813-20190819 7 hotNews:20190813 hotNews:20190814 hotNews:20190815....hotNews:20190819
- Mostrar los 10 mejores en el 7º->
ZREVRANGE hotNews:20190813-20190819 0 10 WITHSCORES
- Haga clic en Noticias->