English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Conjunto ordenado (sorted set) de Redis

Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

La diferencia es que cada elemento se asocia con un valor de tipo double. Redis ordena a los miembros de la colección desde el más pequeño al más grande mediante las puntuaciones.

Los miembros de la colección ordenada son únicos, pero las puntuaciones (score) pueden repetirse.

La colección se implementa mediante una tabla de hash, por lo que la complejidad de agregar, eliminar y buscar es O(1)。 El número máximo de miembros en la colección es 232 - 1 (4294967295, cada conjunto puede almacenar40 más de mil millones de miembros).

Ejemplo en línea

redis 127.0.0.1:6379> ZADD w3codeboxkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD w3codeboxkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE w3codeboxkey 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

En el ejemplo anterior, mediante el comando ZADD Se han añadido tres valores a la colección ordenada de redis y se han asociado con puntuaciones.

Comandos de la colección ordenada de Redis

La siguiente tabla enumera los comandos básicos de la colección ordenada de redis:

Número de ordenComando y descripción
1ZADD key score1 member1 [score2 member2]
Añade uno o más miembros a la colección ordenada o actualiza la puntuación de los miembros existentes
2ZCARD key
Obtiene el número de miembros de la colección ordenada
3ZCOUNT key min max
Calcula el número de miembros en el intervalo de puntuación especificado de la colección ordenada
4ZINCRBY key increment member
Añade el增进 increment a la puntuación del miembro especificado en la colección ordenada
5ZINTERSTORE destination numkeys key [key ...]
Calcula la intersección de una o más colecciones ordenadas y almacena el conjunto de resultados en una nueva colección ordenada destination
6ZLEXCOUNT key min max
Calcula el número de miembros en el intervalo de diccionario específico de la colección ordenada
7ZRANGE key start stop [WITHSCORES]
Devuelve los miembros en el rango específico de la colección ordenada por índice
8ZRANGEBYLEX key min max [LIMIT offset count]
Devuelve los miembros de la colección ordenada por intervalo de diccionario
9ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
Devuelve los miembros en el rango especificado de la colección ordenada por puntuación
10ZRANK key member
Devuelve el índice del miembro especificado en la colección ordenada
11ZREM key miembro [miembro ...]
Eliminar uno o más miembros de un conjunto ordenado
12ZREMRANGEBYLEX key mín max
Eliminar todos los miembros en el rango de diccionario especificado del conjunto ordenado
13ZREMRANGEBYRANK key inicio fin
Eliminar todos los miembros en el rango de posición especificado del conjunto ordenado
14ZREMRANGEBYSCORE key mín max
Eliminar todos los miembros en el rango de puntuación especificado del conjunto ordenado
15ZREVRANGE key inicio fin [CON PUNTUACIÓN]
Devolver los miembros en el rango especificado del conjunto ordenado, a través de índices, la puntuación se ordena desde alta a baja
16ZREVRANGEBYSCORE key máx min [CON PUNTUACIÓN]
Devolver los miembros en el rango de puntuación especificado del conjunto ordenado, los miembros se ordenan por puntuación desde alta a baja
17ZREVRANK key miembro
Devolver la posición del miembro especificado en el conjunto ordenado, los miembros del conjunto ordenado se ordenan por valor de puntuación en orden decreciente (de mayor a menor)
18ZSCORE key miembro
Devolver el valor de puntuación del miembro en el conjunto ordenado
19ZUNIONSTORE destino numkeys key [key ...]
Calcular la unión de uno o más conjuntos ordenados dados y almacenarlos en un nuevo key
20ZSCAN key cursor [MATCH patrón] [COUNT cuenta]
Iterar los elementos de un conjunto ordenado (incluyendo el miembro del elemento y el valor del elemento)