Como usar o conjunto classificado Redis

Como usar o conjunto classificado Redis
Conjuntos classificados são um dos tipos de dados mais valiosos e avançados no Redis. Conjuntos classificados são muito semelhantes aos conjuntos porque ambos contêm sequências de string não repetidas. No entanto, diferentemente dos conjuntos padrão, os conjuntos classificados incluem um valor de pontuação associado a cada membro.

O valor da pontuação permite que eles sejam classificados em uma ordem específica. Cada membro de um conjunto classificado deve ser único, mas pode compartilhar um valor de pontuação com vários membros.

Neste tutorial, você aprenderá tudo sobre os conjuntos classificados no Redis e como você pode usá -los em seus bancos de dados.

Certifique -se de ter um servidor Redis existente instalado e em execução para seguir este tutorial.

Criando conjuntos classificados

Para criar um conjunto classificado em Redis, use o comando Zadd no Redis CLI. O comando de Zadd leva três argumentos principais.

O primeiro é o nome da chave que mantém o conjunto classificado.

O segundo argumento mantém a pontuação do membro que está sendo adicionada ao conjunto classificado.

O argumento final e terceiro é o valor real do membro no conjunto classificado.

Nota: A ordem dos argumentos é importante como cada um representa os valores, conforme ditado acima.

Dê uma olhada no exemplo mostrado abaixo.

127.0.0.1: 6379> Zadd Capitães 1 "Jonathan Archer"

O comando acima cria um conjunto classificado contendo os nomes dos capitães de Star Trek. No exemplo acima, o valor de "Jonathan Archer" tem uma pontuação de 1.

O comando retorna um valor inteiro que indica o número total de membros adicionados ao conjunto classificado.

Redis não o restringe a adicionar um único membro ao conjunto. Você pode adicionar vários valores. Por exemplo:

Zadd Capitães 2 "Carol Freeman" 4 "Christopher Pike" 1 "Jean-Luc Picard" 3 "Kathryn Janeway."

Você notará duas coisas principais no comando acima:

  1. Primeiro, a pontuação para cada membro no classificado não precisa ser sequencial. Você pode atribuir uma pontuação de 100 a um membro, mesmo que as outras pontuações não estejam definidas com nenhum valor.
  2. Segundo, um membro pode ter uma pontuação semelhante a outro membro no conjunto classificado.

Opções de comando zadd.

O comando Zadd aceita várias opções para modificar seu comportamento e funcionalidade. Essas opções incluem:

  1. NX - A opção NX informa ao comando ZADD apenas para adicionar novos membros. Esta opção impede que o comando atualize os membros existentes no conjunto especificado.
  2. Por outro lado, xx - a opção xx atualizará apenas os membros existentes e não adicionará novos membros ao conjunto.

Nota: as opções NX e XX são conflitantes. Portanto, você só pode usar uma opção em um único comando.

  1. CH - A opção CH diz a Zadd para incluir o número de itens alterados. Por padrão, Zadd retornará apenas o número de itens recém -adicionados. O comando Zadd retornará o número de itens adicionados e elementos atualizados usando a opção CH.
  2. Incur - a opção incurga o comando de Zadd para incrementar a pontuação de um membro. Se o membro especificado não existir no conjunto classificado, o Redis o criará automaticamente e definirá o incremento como a pontuação.

Nota: Usando o comando zincrby em vez de zadd com a opção incur é recomendada. Ambos desempenham a mesma função.

Buscar membros de um conjunto classificado

Para recuperar os membros de um conjunto classificado em Redis, use o comando Zrange. O comando leva o nome da chave e uma gama específica dos membros que você deseja recuperar. Os valores de intervalo dos membros do conjunto classificado são índices baseados em zero. Portanto, o primeiro membro do conjunto está no índice 0.

Por exemplo, para recuperar os membros do índice 0 a 10, insira o comando:

127.0.0.1: 6379> Capitães de ZRange 0 10

O comando retornará os membros dentro desse intervalo especificado. Exemplo de saída é como mostrado abaixo:

1) "Jonathan Archer"
2) "Carol Freeman"
3) "Kathryn Janeway"
4) "Christopher Pike"
5) "Jean-Luc Picard"

Nos casos em que o conjunto classificado contém membros com um valor de pontuação semelhante, os membros serão classificados em ordem lexicográfica.

Se você deseja colocar os membros dentro do conjunto e suas pontuações associadas, você pode usar a opção Withscores.

127.0.0.1: 6379> ZRANGE CAPTINOS 0 10 WITHSCORES

A saída de exemplo do comando acima é como mostrado.

1) "Jonathan Archer"
2) "1"
3) "Carol Freeman"
4) "2"
5) "Kathryn Janeway"
6) "3"
7) "Christopher Pike"
8) "4"
9) "Jean-Luc Picard"
10) "5"

Suponha que você queira levar os membros em ordem inversa. Lembre -se de que o comando Zrange retorna os membros apenas em ordem crescente. Para obter a ordem reversa, use o comando ZrevRange.

127.0.0.1: 6379> ZREVRANGE CAPTINOS 0 10

O comando resultará em ordem inversa.

1) "Jean-Luc Picard"
2) "Christopher Pike"
3) "Kathryn Janeway"
4) "Carol Freeman"
5) "Jonathan Archer"

Você também pode incluir a opção WithOptions no comando ZrevRange.

1) "Jean-Luc Picard"
2) "5"
3) "Christopher Pike"
4) "4"
5) "Kathryn Janeway"
6) "3"
7) "Carol Freeman"
8) "2"
9) "Jonathan Archer"
10) "1"

O valor resultante conterá as pontuações em ordem inversa.

Remova os membros de um conjunto classificado

Para remover os membros de um conjunto classificado, use o comando ZREM.

127.0.0.1: 6379> Zrem capitães "Jonathan Archer"

O comando retornará um valor inteiro mostrando o número de itens removidos do conjunto classificado.

Para remover itens por intervalo, use o comando ZrembyRange.

127.0.0.1: 6379> ZREMRANCEBYLEX CAPTERES [A [Z

O comando removerá os valores com base em sua gama Lexico.

Para remover os membros em seu alcance de pontuação, use o comando ZREMRANGEBYBYSCORE.

127.0.0.1: 6379> ZREMRANGEBYBYSCORE Capitães 0 5

Obtenha informações sobre conjuntos classificados

Use o comando ZCARD para buscar o número de membros em um determinado conjunto classificado.

127.0.0.1: 6379> Capitães ZCARD

O valor de retorno é um número inteiro mostrando o número de itens em um conjunto.

Se você deseja obter o número de membros dentro de um intervalo específico, use o comando ZCount.

127.0.0.1: 6379> ZCOUNT CAPTINOS 0 10

Da mesma forma, o comando retorna um valor inteiro.

Para obter a pontuação de um membro específico em um conjunto classificado, use o comando ZSCORE:

127.0.0.1: 6379> Capitães do ZSCore "Carol Freeman"
"2"

O comando retornará a pontuação do membro se houver.

Conclusão

Este artigo discutiu como começar e usar conjuntos classificados em rubi. Lembre -se de que há mais conjuntos classificados do que discutidos neste guia. Considere a documentação para saber mais.