Buscar..


Introducción

El tipo de datos del conjunto ordenado en Redis es una versión ordenada del tipo de datos del conjunto. Un conjunto clasificado de Redis consiste en una colección de miembros únicos. Cada miembro del conjunto clasificado puede considerarse como un par que consiste en el miembro y una puntuación. La puntuación se utiliza para ordenar los miembros dentro del conjunto en orden ascendente.

Sintaxis

  • Clave de ZADD [NX | XX] [CH] [INCR] miembro de puntuación [miembro de puntuación ...]
  • Tecla ZCARD
  • Tecla ZCOUNT min max max
  • Tecla ZLEXCOUNT min max max

Observaciones

La documentación oficial de los Conjuntos Clasificados se puede encontrar en el sitio Redis.io .

Los conjuntos ordenados a veces se denominan zsets. Si usa el comando TIPO en una clave de conjunto ordenada, se devolverá el valor zset.

Agregar elementos a un conjunto ordenado

Redis proporciona el comando ZADD para agregar elementos a un conjunto ordenado. La forma básica del comando ZADD es especificar el conjunto, el elemento a agregar y su puntuación. Por ejemplo, si quisiera construir un juego ordenado de mi comida favorita (de menos a la mayoría), podría usar cualquiera de los siguientes:

zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer

o alternativamente:

zadd favs 1 apple 2 pizza 3 chocolate 4 beer

La función ZADD funciona de manera muy similar a la función de conjunto sin clasificar SADD. El resultado del comando ZADD es la cantidad de elementos que se agregaron. Así que después de crear mi set como el de arriba, si intenté hacer una cerveza ZADD nuevamente:

ZADD favs 4 beer

Obtendría un resultado de 0, si decidiera que me gusta el chocolate más que la cerveza, podría ejecutar:

ZADD favs 3 beer 4 chocolate

para actualizar mis preferencias, pero todavía obtendría un resultado de retorno de 0 ya que tanto la cerveza como el chocolate ya están en el set.

Contando elementos en un conjunto ordenado

Redis proporciona tres comandos para contar los elementos dentro de un conjunto ordenado: ZCARD, ZCOUNT, ZLEXCOUNT.

El comando ZCARD es la prueba básica para la cardinalidad de un conjunto. (Es análogo al comando SCARD para conjuntos). ZCARD devuelve el recuento de los miembros de un conjunto. Ejecutando el siguiente código para agregar elementos a un conjunto:

zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer

corriendo ZCard:

zcard favs

devuelve un valor de 4.

Los comandos ZCOUNT y ZLEXCOUNT le permiten contar un subconjunto de los elementos en un conjunto ordenado basado en un rango de valores. ZCOUNT le permite contar artículos dentro de un rango particular de puntajes y ZLEXCOUNT le permite contar el número de artículos dentro de un rango lexográfico particular.

Usando nuestro set de arriba:

zcount favs 2 5

devolvería un 3, ya que hay tres elementos (pizza, chocolate, cerveza) que tienen una puntuación de entre 2 y 5 inclusive.

ZLEXCOUNT está diseñado para funcionar con conjuntos en los que cada elemento tiene la misma puntuación, forzando y ordenando los nombres de los elementos. Si creamos un conjunto como:

zadd favs 1 apple
zadd favs 1 pizza
zadd favs 1 chocolate
zadd favs 1 beer

podríamos usar ZLEXCOUNT para obtener el número de elementos en un rango lexográfico particular (esto se hace mediante una comparación de bytes usando la función memcpy).

zlexcount favs [apple (chocolate

volvería 2, ya que dos elementos (manzana, cerveza) caen dentro del rango manzana (inclusive) y chocolate (exclusivo). Podríamos alternativamente hacer ambos extremos inclusive:

zlexcount favs [apple [chocolate

y obtener el resultado 3.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow