English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Conjunto Ordenado (sorted set) Redis

A coleção ordenada do Redis é uma coleção de elementos do tipo string, semelhante à coleção, e não permite membros repetidos.

Diferente disso, cada elemento está associado a um valor do tipo double. O redis organiza os membros do conjunto com base nas pontuações, desde o menor até o maior.

Os membros do conjunto ordenado são únicos, mas a pontuação (score) pode ser repetida.

O conjunto é implementado por uma tabela de hashing, portanto, a complexidade de adição, exclusão e busca é O(1) O número máximo de membros no conjunto é 232 - 1 (4294967295, cada conjunto pode armazenar40 a mais de 10 bilhões de membros).

Exemplo online

redis 127.0.0.1:6379> ZADD w3codeboxkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD w3codeboxkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE w3codeboxkey 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

No exemplo acima, usamos o comando ZADD Adicionou três valores à coleção ordenada do redis e associou pontuações a eles.

Comandos de conjunto ordenado do Redis

A tabela a seguir lista os comandos básicos do conjunto ordenado do redis:

Número sequencialComando e descrição
1ZADD key score1 membro1 [pontuação2 membro2]
Adiciona um ou mais membros à coleção ordenada ou atualiza a pontuação dos membros existentes
2ZCARD key
Obtém o número de membros na coleção ordenada
3ZCOUNT key min max
Calcula o número de membros dentro do intervalo de pontuação especificado na coleção ordenada
4ZINCRBY key increment member
Adiciona o valor incrementado ao valor da pontuação do membro especificado na coleção ordenada
5ZINTERSTORE destination numkeys key [key ...]
Calcula a interseção de uma ou mais coleções ordenadas e armazena o resultado em uma nova coleção ordenada destination
6ZLEXCOUNT key min max
Calcula o número de membros dentro do intervalo de dicionário na coleção ordenada
7ZRANGE key start stop [WITHSCORES]
Retorna os membros da coleção ordenada especificada dentro do intervalo de índice
8ZRANGEBYLEX key min max [LIMIT offset count]
Retorna os membros da coleção ordenada especificada dentro do intervalo de dicionário
9ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
Retorna os membros da coleção ordenada especificada dentro do intervalo de pontuação
10ZRANK key member
Retorna o índice do membro especificado na coleção ordenada
11ZREM key member [member ...]
Remove um ou mais membros do conjunto ordenado
12ZREMRANGEBYLEX key min max
Remove todos os membros dentro do intervalo de dicionário especificado no conjunto ordenado
13ZREMRANGEBYRANK key start stop
Remove todos os membros dentro do intervalo de classificação especificado no conjunto ordenado
14ZREMRANGEBYSCORE key min max
Remove todos os membros dentro do intervalo de pontuação especificado no conjunto ordenado
15ZREVRANGE key start stop [WITHSCORES]
Retorna os membros dentro do intervalo especificado no conjunto ordenado, através de índice, ordenados por pontuação decrescente
16ZREVRANGEBYSCORE key max min [WITHSCORES]
Retorna os membros dentro do intervalo de pontuação especificado no conjunto ordenado, ordenados por pontuação decrescente
17ZREVRANK key member
Retorna a classificação do membro especificado no conjunto ordenado, os membros do conjunto ordenado são ordenados por valor de pontuação decrescente (do maior para o menor)
18ZSCORE key member
Retorna o valor de pontuação do membro no conjunto ordenado
19ZUNIONSTORE destination numkeys key [key ...]
Calcular a união de um ou mais conjuntos ordenados dados, e armazenar em um novo key
20ZSCAN key cursor [MATCH pattern] [COUNT count]
Iterar pelos elementos de um conjunto ordenado (inclusive dos membros dos elementos e dos valores dos elementos)