Redis Zrank

Redis Zrank
Los conjuntos clasificados de Redis pueden contener una colección de cuerdas donde cada una se llama miembro establecido. Cada miembro está asociado con un valor de rango y puntaje. El rango es el índice de un miembro en particular en el conjunto ordenado almacenado en una clave dada. El valor de puntaje se utiliza para ordenar a los miembros del conjunto del valor de puntaje más bajo a más alto. Por lo tanto, un miembro con el valor de puntaje más bajo se asignará a un índice de 0. Estas propiedades permiten que los conjuntos ordenados realicen muchas más tareas con alto rendimiento.

Hay varios comandos disponibles para operar en conjuntos ordenados. A veces, debe conocer el índice o rango de un miembro en el conjunto ordenado de redis almacenado en una clave dada. El Zrank es el comando ideal para usar, que se discutirá en la siguiente sección.

El comando zrank

Ahora, tiene una idea de cómo se ha asignado el valor del índice a cada miembro en un conjunto ordenado. El comando Zrank obtiene el rango de un miembro especificado con complejidad de tiempo lineal. La siguiente es la sintaxis para el comando Zrank:

Zrank sorted_set_key miembro

sorted_set_key: La clave del conjunto ordenado al que pertenece el miembro.

miembro: El nombre del miembro que necesita para obtener el rango.

Este comando devuelve el rango o índice del miembro especificado como un valor entero si el miembro existe en el conjunto ordenado. Cada vez que el miembro especificado o la tecla de conjunto ordenada no existe, el comando Zrank devuelve un valor de cadena nulo.

Caso 01: Obtenga la posición de la tabla de clasificación de juegos de un jugador

Supongamos que tenemos una tabla de clasificación de juegos en línea implementada utilizando el set Redis Ordenado. Ahora, mostraremos el rango de cada jugador cuando inicien sesión en su perfil de usuario.

Primero, creemos una tabla de clasificación ficticia, Tablero de ventas en línea, y agregue jugadores usando el comando ZADD.

Zadd OnlineGameleaderboard 3000 "Jack" 1200 "Mary" 1000 "Rikaz" 5000 "Noel"

A continuación, llamaremos al comando ZRange para verificar si los miembros han sido agregados correctamente.

zrange onlinegameleaderboard 0 10 withscores

Producción:

Como se esperaba, los miembros han sido ordenados en orden ascendente por sus valores de puntaje. Digamos que necesitamos obtener cada uno de los rangos de estos miembros. El Zrank se puede usar como el siguiente:

Zrank OnlineGameleaderboard Rikaz
Zrank OnlineGameleaderboard Mary
Zrank OnlineGameleaderboard Jack
Zrank OnlineGameleaderboard Noel

Producción:

Como se esperaba, el rango regresó para cada miembro donde el miembro "Rikaz" tiene el rango más bajo de 0. Además, el miembro "Noel" obtuvo el rango más alto de 3.

Verifiquemos cómo se comporta el comando si especifica a un miembro no existente en el siguiente comando:

Zrank OnlineGameleaderboard Martin

El miembro que hemos especificado no está en el conjunto ordenado. Por lo tanto, devolvió la cadena nulo.

A continuación, verificaremos el siguiente comando para la clave no existente:

Zrank inexistente Key Martin

El valor de retorno es nuevamente nulo.

El comando Zrank no admite múltiples miembros como argumentos. Por lo tanto, si proporciona varios miembros, lanzará un error. Se recomienda usar el comando Zrank cuando necesite obtener el valor de índice de un miembro de conjunto ordenado.

En resumen, los conjuntos clasificados de Redis pueden contener los valores de cadena llamados miembros. Cada uno de estos miembros está asociado con dos propiedades: puntaje y rango. Como se discutió, el rango se basa en 0 y se incrementa por uno por miembro. Por lo general, los miembros del set clasificado Redis son ordenados por sus puntajes en orden ascendente. Por lo tanto, el miembro con la puntuación más baja se asignará al índice 0.

Conclusión

Este artículo discutió cómo el comando Zrank le permite obtener este valor de índice para un miembro determinado en el conjunto ordenado almacenado en una clave dada. Es importante tener en cuenta que el comando Zrank funciona con complejidad de tiempo lineal.