Redis - conjuntos classificados
Os conjuntos classificados do Redis são semelhantes aos conjuntos do Redis com o recurso exclusivo de valores armazenados em um conjunto. A diferença é que cada membro de um conjunto classificado está associado a uma pontuação, que é usada para obter o conjunto classificado ordenado, da menor para a maior pontuação.
No conjunto classificado do Redis, adicione, remova e teste a existência de membros em O (1) (tempo constante, independentemente do número de elementos contidos no conjunto). O comprimento máximo de uma lista é de 2 32 - 1 elementos (4294967295, mais de 4 bilhões de elementos por conjunto).
Exemplo
redis 127.0.0.1:6379> ZADD tutorials 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD tutorials 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
No exemplo acima, três valores são inseridos com sua pontuação no conjunto classificado do Redis denominado 'tutoriais' pelo comando ZADD.
Comandos de conjuntos classificados do Redis
A tabela a seguir lista alguns comandos básicos relacionados a conjuntos classificados.
Sr. Não | Comando e Descrição |
---|---|
1 | ZADD chave score1 member1 [score2 member2] Adiciona um ou mais membros a um conjunto classificado ou atualiza sua pontuação, se já existir |
2 | Chave ZCARD Obtém o número de membros em um conjunto classificado |
3 | ZCOUNT chave mín. Máx. Conta os membros em um conjunto classificado com pontuações dentro dos valores dados |
4 | Membro de incremento de chave ZINCRBY Aumenta a pontuação de um membro em um conjunto classificado |
5 | ZINTERSTORE destino numkeys tecla [tecla ...] Cruza vários conjuntos classificados e armazena o conjunto classificado resultante em uma nova chave |
6 | ZLEXCOUNT chave mín. Máx. Conta o número de membros em um conjunto classificado entre um determinado intervalo lexicográfico |
7 | ZRANGE key start stop [WITHSCORES] Retorna um intervalo de membros em um conjunto classificado, por índice |
8 | ZRANGEBYLEX chave min max [LIMIT offset count] Retorna um intervalo de membros em um conjunto classificado, por intervalo lexicográfico |
9 | ZRANGEBYSCORE chave mín. Máx. [WITHSCORES] [LIMIT] Retorna um intervalo de membros em um conjunto classificado, por pontuação |
10 | Membro chave do ZRANK Determina o índice de um membro em um conjunto classificado |
11 | Membro-chave da ZREM [membro ...] Remove um ou mais membros de um conjunto classificado |
12 | ZREMRANGEBYLEX chave mín. Máx. Remove todos os membros em um conjunto classificado entre o intervalo lexicográfico fornecido |
13 | ZREMRANGEBYRANK iniciar parada chave Remove todos os membros em um conjunto classificado dentro dos índices fornecidos |
14 | ZREMRANGEBYSCORE chave mín. Máx. Remove todos os membros em um conjunto classificado dentro das pontuações fornecidas |
15 | ZREVRANGE chave start stop [WITHSCORES] Retorna um intervalo de membros em um conjunto classificado, por índice, com pontuações ordenadas de alto a baixo |
16 | ZREVRANGEBYSCORE chave máximo mínimo [WITHSCORES] Retorna um intervalo de membros em um conjunto classificado, por pontuação, com pontuações ordenadas de alto a baixo |
17 | Membro-chave ZREVRANK Determina o índice de um membro em um conjunto classificado, com pontuações ordenadas de alto a baixo |
18 | Membro chave ZSCORE Obtém a pontuação associada a um determinado membro em um conjunto classificado |
19 | ZUNIONSTORE destino numkeys tecla [tecla ...] Adiciona vários conjuntos classificados e armazena o conjunto classificado resultante em uma nova chave |
20 | Cursor da tecla ZSCAN [padrão MATCH] [COUNT count] Incrementarmente itera elementos de conjuntos classificados e pontuações associadas |