Cinco estructuras de datos comunes en el escenario de recopilación ordenada de redis-ZSet

 

 

 

 

 

 

Búsqueda caliente

 

 

 



#tom第一天获得5个贴纸
> zadd day1 5 tom
(integer) 1
#jacy第一天获得2个贴纸
> zadd day1 2 jack
(integer) 1
#merry第一天获得8个贴纸
> zadd day1 8 merry
(integer) 1
#jacy第一天又多增加获得1个贴纸
> zincrby day1 1 jack
"3"
#查看jack的排名
> zrank day1 jack
(integer) 0
#查看merry的排名
> zrank day1 merry
(integer) 2
#查看所有人的排名
> zrange day1 0 -1
1) "jack"
2) "tom"
3) "merry"
#查看获得5到9个之间的小朋友的名单
> zrangebyscore day1 5 9
1) "tom"
2) "merry"
#查看day1总共有多少个人
> zcard day1
(integer) 3
#jack第二天又获得了3个贴纸
> zadd day2 3 jack
(integer) 1
#统计day1,day2两天总共获得的贴纸排名,并且把结果放到union:day1andday2这个key里面
> zunionstore union:day1andday2 2 day1 day2 
(integer) 3
#统计排名并显示他们获得贴纸的个数
> zrangebyscore union:day1andday2 0 1000 withscores
1) "tom"
2) "5"
3) "jack"
4) "6"
5) "merry"
6) "8"

 

 

 

Otros escenarios de uso:
1: Estadísticas de actividad diaria
2: Estadísticas de ingresos en las últimas 24 horas, etc.
3: Lista diaria de recompensas
4: Lista de escalada
5: También hay una aplicación especial que puede establecer la puntuación como el tiempo de vencimiento, y personalizarlo según socre Limpiar algo

Implementación: el
conjunto ordenado utiliza internamente HashMap y SkipList para garantizar el almacenamiento y el orden de los datos. HashMap coloca la asignación de los miembros a la puntuación, y la tabla de omisión almacena todos los miembros, y la base de clasificación es HashMap. La puntuación almacenada en se puede obtener usando la estructura de la tabla de salto para obtener una mayor eficiencia de búsqueda, y la realización es relativamente simple.

comando de operación zset (conjunto ordenado)

zadd (clave, puntaje, miembro): agregue el miembro del elemento al zset llamado clave, y el puntaje se usa para ordenar. Si el elemento ya existe, el orden del elemento se actualiza según la puntuación.

zrem (clave, miembro): elimina el miembro del elemento en la clave denominada zset

zincrby (clave, incremento, miembro): si el miembro del elemento ya existe en la clave denominada zset, la puntuación del elemento aumenta en un incremento; de lo contrario, el elemento se agrega al conjunto y el valor de la puntuación se incrementa

zrank (clave, miembro): Devuelve el rango (es decir, índice, comenzando desde 0) del elemento miembro en la clave denominada zset (los elementos se han ordenado por puntuación de pequeño a grande). Si no hay ningún elemento miembro, devuelva " nulo"

Estadísticas de Zcard

zrevrank (clave, miembro): Devuelve el rango (es decir, índice, comenzando desde 0) del elemento miembro en la clave denominada zset (los elementos se ordenan por puntuación de mayor a menor). Si no hay ningún elemento miembro, devuelve "nil "

zrange (key, start, end): Devuelve todos los elementos con índice de principio a fin en la clave denominada zset (los elementos se ordenan por puntuación de pequeño a grande)

zrevrange (key, start, end): devuelve todos los elementos cuyo índice es de principio a fin en el zset llamado key (los elementos se ordenan por puntuación de mayor a menor)

zrangebyscore (key, min, max): Devuelve todos los elementos en el zset named key cuya puntuación> = min y score <= max zcard (clave): devuelve la cardinalidad del zset named key zscore (clave, elemento): devuelve el nombre La puntuación del elemento elemento en la clave zset zremrangebyrank (clave, min, max): eliminar todos los elementos cuyo rango es> = min y rango <= max en el zset cuyo nombre es clave zremrangebyscore (clave, min, max): eliminar todos los elementos cuyo nombre es clave Todos los elementos del zset con puntaje> = mínimo y puntaje <= máximo

zunionstore / zinterstore (dstkeyN, key1,…, keyN, WEIGHTS w1,… wN, AGGREGATE SUM | MIN | MAX): Busque la unión y la intersección de N zsets y guarde el conjunto final en dstkeyN. Para la puntuación de cada elemento del conjunto, se debe multiplicar por el parámetro PESO antes de realizar la operación AGREGAR. Si no se proporciona PESO, el valor predeterminado es 1. El AGGREGATE predeterminado es SUM, es decir, la puntuación del elemento en el conjunto de resultados es el valor de la operación SUM de todos los elementos correspondientes del conjunto, y MIN y MAX significan que la puntuación del elemento en el conjunto de resultados es el mínimo y máximo de todos los elementos correspondientes del conjunto.

Supongo que te gusta

Origin blog.csdn.net/liuming690452074/article/details/113803525
Recomendado
Clasificación