Redis Zrevrange

Redis Zrevrange
"La estructura de datos del conjunto ordenado es un tipo de datos especial introducido por Redis, donde se ordenan los elementos almacenados en orden ascendente. Los miembros almacenados dentro de un set ordenado son más como pares de valor de campo de un hash Redis. Cada miembro está asociado con un puntaje y rango donde las consultas pueden ser realizadas por ambas propiedades. El rango o índice se asigna a cada miembro a partir de cero; El siguiente elemento es uno, y así sucesivamente. Además, el índice puede ser un valor negativo. El rango -1 indica el último miembro del conjunto ordenado. El elemento junto al último elemento se denota mediante el índice -2 y así sucesivamente.

Los comandos Zrevrange y ZRange son capaces de recuperar miembros entre un rango especificado de índices de un conjunto ordenado almacenado en una clave dada. Estos comandos aceptan los valores de índice positivos y negativos al consultar a los miembros de un rango dado. En esta guía, nos centraremos en el comando Zrevrange y su uso práctico."

Comando Redis Zrevrange

El comando ZrevRange se usa para consultar a los miembros entre los valores de índice mínimo y máximo especificados de un conjunto ordenado almacenado en una clave dada. Los miembros son devueltos en orden descendente en función de su valor de puntaje. Siempre que los múltiples miembros tengan el mismo puntaje, los elementos se ordenarán lexicográficamente.

Sintaxis

ZrevRange sorted_set_key start_index end_index [withscores]

sorted_set_key: Esta es la identificación única que identifica el conjunto ordenado en el almacén de datos de Redis

Índice de comienzo: El índice inicial del rango especificado

end_index: El índice final del rango especificado

[WithScores]: Este es un argumento opcional cuando los miembros especificados serán devueltos con sus puntajes.

El comando devolverá una matriz de miembros almacenados entre el rango de índice especificado. Si el Conscores Se ha especificado el argumento, los puntajes se incluirán en la salida.

Ejemplo: devuelva a los jugadores que han completado la mayor cantidad de niveles en un juego en línea

Supongamos que un juego comunitario en línea donde cada jugador se clasifica en función del número de niveles completados. Al final de cada semana, los tres mejores jugadores obtienen regalos de bonificación. Por lo tanto, necesitamos consultar a los 3 mejores jugadores que hayan completado la mayor cantidad de niveles en el juego. Podemos asignar el número de niveles completados como la puntuación de un miembro almacenado en un conjunto ordenado.

Primero, agregaremos algunos jugadores a un set ordenado llamado Tablero de gameleader.

Zadd GameLeaderboard 4 Player: 1
Zadd GameLeaderboard 2 Player: 3
Zadd GameLeaderboard 5 Player: 2
Zadd GameLeaderboard 1 Player: 4
Zadd GameLeaderboard 10 Jugador: 5

En el ejemplo anterior, Jugador 1 ha completado 4 niveles, Jugador: 5 ha completado 10 niveles, y así sucesivamente. La información anterior sobre un jugador se ha asignado a un conjunto ordenado, como se muestra en el siguiente.

Usemos el comando Zrevrange para consultar a todos los miembros cuyo recuento de niveles completos es más alto y va a la parte superior de la lista.

Zrevrange Gameleaderboard 0 4

Como en la ilustración anterior, los índices de conjunto ordenados se extienden de 0 a 4. Por lo tanto, especificamos los índices de inicio y finalización como 0 y 4, respectivamente, lo que idealmente debería devolver a todos los miembros que pertenecen al conjunto ordenado identificado por la clave GameLeaderboard AS puedes ver, ha ordenado a los miembros de una manera que la mayoría de los jugadores tengan la mayor cantidad de niveles completos en el juego.

Los miembros de la consulta con sus puntajes
El comando zRange se puede usar con el argumento opcional WithScores para mostrar los valores de puntaje de cada jugador en el ejemplo anterior.

Zrevrange GameLeaderboard 0 4 con escorsos

Producción

Miembros de la consulta a partir del final del set ordenado
En todos los ejemplos anteriores, hemos utilizado el índice basado en 0 que cuenta desde el inicio del conjunto ordenado. Podemos especificar el rango de índice a partir del final del conjunto ordenado también. Digamos que necesitamos consultar a los jugadores cuyos puntajes son los más bajos utilizando el comando Zrevrange.

Zrevrange GameLeaderboard -3 -1 con escorsos

En este caso, el índice final se ha especificado como -1, lo que significa el último elemento. El índice de inicio es -3. Por lo tanto, consultará a los miembros hasta el tercer miembro desde el final del set ordenado. Esto es muy claro si usa la figura anterior, que muestra cómo los índices se pueden usar en ambos sentidos.

El comando zrange en lugar de zrevrange

El comando Zrevrange se ha desaprobado de la versión 6 de Redis.2.0. Por lo tanto, se recomienda utilizar el comando ZRange con el argumento de revoluciones opcional, que se comporta lo mismo que el comando ZrevRange.

Conclusión

Para resumir, el comando Zrevrange se usa para consultar a los miembros entre un índice mínimo y máximo especificado de un conjunto ordenado Redis almacenado en una clave dada. Recupera a los miembros almacenados entre los valores de índice especificados en orden inverso. Además del ordenamiento invertido de los miembros, este comando se comporta de manera similar al comando zrange. Como se indicó anteriormente, tiene una complejidad del tiempo logarítmico que hace que el comando sea bastante rápido de usar en aplicaciones en tiempo real de manera eficiente. Por lo tanto, el comando Zrevrange es ideal para usar siempre que necesite recuperar elementos en orden descendente de un conjunto ordenado.