Os comandos ZrevRange e Zrange são capazes de recuperar membros entre uma gama especificada de índices de um conjunto classificado armazenado em uma determinada chave. Esses comandos aceitam os valores de índice positivo e negativo ao consultar os membros de um determinado intervalo. Neste guia, estaremos focados no comando ZrevRange e em seu uso prático.”
Comando Redis ZrevRange
O comando zrevRange é usado para consultar os membros entre os valores mínimos e máximos especificados de um conjunto classificado armazenado em uma determinada chave. Os membros são devolvidos em ordem decrescente com base em seu valor de pontuação. Sempre que os vários membros têm a mesma pontuação, os elementos serão ordenados lexicograficamente.
Sintaxe
ZREVRANGE STORNED_SET_KEY START_INDEX END_INDEX [WITHSCORES]STORD_SET_KEY: Este é o ID exclusivo que identifica o conjunto classificado no Redis Data Store
start_index: O índice inicial do intervalo especificado
end_index: O índice final do intervalo especificado
[Withscores]: Este é um argumento opcional quando os membros especificados serão devolvidos com suas pontuações.
O comando retornará uma variedade de membros armazenados entre o intervalo de índice especificado. Se o Withscores Argumento foi especificado, as pontuações serão incluídas na saída.
Exemplo: devolva os jogadores que concluíram o maior número de níveis em um jogo online
Vamos supor um jogo da comunidade online, onde cada jogador é classificado com base no número de níveis concluídos. No final de cada semana, os três principais jogadores recebem presentes de bônus. Portanto, precisamos consultar os três principais jogadores que completaram o maior número de níveis do jogo. Podemos atribuir o número de níveis concluídos como a pontuação de um membro armazenado em um conjunto classificado Redis.
Primeiro, adicionaremos alguns jogadores a um conjunto classificado chamado Gameleaderboard.
Zadd gameleaderboard 4 jogador: 1No exemplo acima, Jogador: 1 completou 4 níveis, Jogador: 5 completou 10 níveis e assim por diante. As informações acima sobre um jogador foram mapeadas para um conjunto classificado, conforme mostrado no seguinte.
Vamos usar o comando ZrevRange para consultar todos os membros cuja contagem de nível concluída é maior e vai para o topo da lista.
zrevRange gameleaderboard 0 4Como na ilustração acima, os índices de conjunto classificados se espalharam de 0 a 4. Portanto, especificamos os índices de início e final como 0 e 4, respectivamente, que devem devolver idealmente todos os membros pertencentes ao conjunto classificado identificado pela chave Gameleaderboard aS Você pode ver, ele ordenou que os membros de uma maneira que a maioria dos jogadores tenha o maior número de níveis concluídos no jogo.
Consulta membros com suas pontuações
O comando Zrange pode ser usado com o argumento opcional do Withscores para exibir os valores de pontuação de cada jogador no exemplo acima.
Saída
Os membros da consulta que começam a partir do final do conjunto classificado
Em todos os exemplos acima, usamos o índice baseado em 0 que conta desde o início do conjunto classificado. Podemos especificar o intervalo de índice a partir do final do conjunto classificado também. Digamos que precisamos consultar os jogadores cujas pontuações são as mais baixas usando o comando zrevrange.
Nesse caso, o índice final foi especificado como -1, o que significa o último elemento. O índice de início é -3. Portanto, ele consultará os membros até o 3º membro do final do conjunto classificado. Isso é muito claro se você usar a figura acima, que mostra como os índices podem ser usados em ambos os lados.
O comando zrange em vez de zrevrange
O comando ZrevRange foi obsoleto da versão 6 Redis.2.0. Portanto, recomenda -se usar o comando Zrange com o argumento opcional Rev, que se comporta o mesmo que o comando ZrevRange.
Conclusão
Para resumir, o comando ZrevRange é usado para consultar os membros entre um mínimo especificado e os índices máximos de um conjunto classificado por redis armazenado em uma determinada chave. Recupera os membros armazenados entre os valores de índice especificados em ordem inversa. Além da ordem invertida dos membros, esse comando se comporta semelhante ao comando Zrange. Como afirmado acima, possui uma complexidade do tempo logarítmico, que torna o comando muito rápido para usar em aplicativos em tempo real com eficiência. Portanto, o comando ZrevRange é ideal para usar sempre que você precisar recuperar elementos em ordem decrescente de um conjunto classificado.