Redis SCARD

Redis Scard



“Os conjuntos Redis são coleções não ordenadas de strings que não contêm duplicatas. Estes são muito semelhantes aos Java HashSets, Python Sets, etc. Mais importante, operações fundamentais como adicionar, remover e verificar a existência de um membro são altamente eficientes porque operam em complexidade de tempo O(1).

Membros de um Conjunto

Conforme mencionado, os conjuntos Redis contêm itens de string exclusivos. Os itens já existentes não serão aceitos pelos conjuntos Redis e serão ignorados. Além disso, um único conjunto pode conter até 4 bilhões de strings únicas.









A natureza do conjunto Redis de manter membros exclusivos é útil em vários casos de uso do mundo real.



  • Capacidade de executar operações de conjunto padrão, como União, Interseção e Diferença.
  • Rastreamento de visitantes únicos para um site
  • Representar relações de entidades do mundo real

O comando SCARD

O comando SCARD, abreviação de Set Cardinality, retorna o número de membros em um conjunto armazenado em uma determinada chave. Ele opera em complexidade de 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 fornecido. Leva sempre um tempo constante.





O comando SCARD possui uma sintaxe bem simples, conforme demonstrado a seguir.

SCARD set_key

set_key: A chave do conjunto Redis



Este comando retorna um valor inteiro que é o número de membros no conjunto.

Caso de uso – Contar os visitantes únicos de um site

Suponha que uma empresa de pizza “YummyPizza” mantenha um site chamado gostosopizza.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 também não deve ser adicionado ao banco de dados. Assim, a estrutura de dados ideal é o conjunto Redis, onde os conjuntos armazenam apenas membros únicos.

Vamos supor que cinco usuários tenham visitado o site e esses membros sejam adicionados ao banco de dados Redis, conforme mostrado a seguir.

SADD YummyPizzaVisitantes:Outubro John Mary Raza Stoinis Prince

Como esperado, o inteiro 5 foi retornado, o que significa que os cinco membros são adicionados ao conjunto armazenado na chave “ YummyPizzaVisitantes:outubro.

No final do dia, os administradores da empresa precisam verificar o número total de visitantes únicos no site. Portanto, a cardinalidade Set precisa ser calculada. Felizmente, o comando SCARD discutido anteriormente é útil nesse tipo de cenário.

Vamos executar o comando SCARD no conjunto armazenado na tecla “ YummyPizzaVisitantes:outubro.

scard YummyPizzaVisitantes:Outubro

A saída é 5, o que significa que cinco membros exclusivos estão no conjunto especificado. Este comando é executado muito rápido. Não importa cinco membros ou 50.000 membros; o tempo de execução será constante.

Suponha que a chave definida especificada não exista no banco de dados Redis. Então, a saída será 0, conforme mostrado no exemplo a seguir. Neste caso, vamos especificar uma chave que não está no banco de dados.

scard NonExistingKey

Conclusão

Para resumir, o conjunto Redis é um candidato ideal para armazenar strings exclusivas. Conforme discutido, a coisa mais importante sobre o conjunto Redis é que a maioria das operações de conjunto associadas levam um tempo constante para serem executadas. O comando SCARD é um dos comandos de conjunto mais usados ​​para calcular o número total de membros de conjunto para um determinado conjunto armazenado em uma chave especificada. Não importa quantos membros do conjunto estejam disponíveis, esse comando leva um tempo constante para fornecer a saída. Conforme mostrado no último exemplo, se a chave definida não existir, a saída será 0.