Membros de um conjunto
Como mencionado, os conjuntos Redis contêm itens exclusivos de string. Os itens já existentes não serão aceitos pelos conjuntos de Redis e serão ignorados. Além disso, um único conjunto pode acomodar até 4 bilhões de seqüências únicas.
A natureza do conjunto de Redis de manter membros únicos é útil em vários casos de uso do mundo real.
O comando scard
O comando scard, abrevante para a cardinalidade definida, retorna o número de membros em um conjunto armazenado em uma determinada chave. Ele opera na complexidade do tempo O (1), o que significa que o tempo que o comando scard leva para executar não depende do número de membros no conjunto especificado. Sempre leva um tempo constante.
O comando scard tem uma sintaxe muito simples, como mostrado no seguinte.
Scard set_keyset_key: A chave do conjunto Redis
Este comando retorna um valor inteiro que é o número de membros no conjunto.
Caso de uso - conte os visitantes únicos em um site
Suponha que uma empresa de pizza "Yummypizza" mantém um site chamado Yummypizza.com onde as pessoas podem pedir pizza online. Para acompanhar suas vendas e base de clientes, eles mantêm um banco de dados Redis para armazenar todos os visitantes únicos do site a cada mês.
Sempre que um usuário visita o site Yummypizza, o ID do usuário deve ser adicionado ao banco de dados Redis. Além disso, o mesmo usuário não deve ser adicionado ao banco de dados também. Portanto, a estrutura de dados ideal é o conjunto Redis, onde os conjuntos armazenam apenas membros exclusivos.
Vamos supor que cinco usuários visitaram o site, e esses membros são adicionados ao banco de dados Redis, conforme mostrado no seguinte.
Sadd yummypizzavisitores: outubro John Mary Raza Stoinis PrinceComo esperado, o número inteiro 5 foi devolvido, o que significa que os cinco membros são adicionados ao conjunto armazenado na chave "Yummypizzavisitores: outubro.”
No final do dia, os administradores da empresa precisam verificar o número total de visitantes únicos no site. Então, a cardinalidade definida precisa ser calculada. Felizmente, o comando scard discutido anteriormente é útil nesse tipo de cenário.
Vamos executar o comando scard no conjunto armazenado em chave "Yummypizzavisitores: outubro.”
Scard Yummypizzavisitores: outubroA saída é 5, o que significa que cinco membros únicos estão no conjunto especificado. Este comando é executado muito rápido. Não importa cinco membros ou 50000 membros; O tempo de execução será constante.
Suponha que a tecla Set especificada não exista no banco de dados Redis. Então, a saída será 0, como mostrado no exemplo a seguir. Nesse caso, vamos especificar uma chave que não esteja no banco de dados.
SCARD NÃO ENCONTRANTECIMENTOConclusão
Para resumir, o Redis Set é um candidato ideal para armazenar strings exclusivos. Conforme discutido, a coisa mais importante sobre o conjunto de Redis é que a maioria das operações de conjunto associado leva um tempo constante para executar. O comando scard é um dos comandos de set mais usados para calcular o número total de membros do conjunto para um determinado conjunto armazenado em uma chave especificada. Não importa quantos membros do conjunto estejam disponíveis, este comando leva tempo constante para fornecer a saída. Conforme mostrado no último exemplo, se a tecla Definir não existir, a saída será 0.