Comando Redis Xlen

Comando Redis Xlen
Redis Stream é uma estrutura de dados de log que supera as limitações de um arquivo de log somente de anexo comum. Esta é a mais nova adição aos tipos de dados Redis da versão 5.0. É baseado no conceito de consumidor do editor, em que várias fontes publicam dados no fluxo, e vários consumidores ou grupos de consumidores lêem dele.

Redis Stream pode armazenar pares de valor de campo em seus nós macro. É eficiente em memória e rápido no acesso a entradas de fluxo, pois é baseado em uma estrutura de árvore da radix. As entradas se parecem com os pares de valor-chave Redis Hash.

A ilustração anterior mostra um fluxo armazenado na chave “SurveryResponse: User01”. Ele contém n número de entradas.

Count Stream entradas com Xlen

Em aplicativos do mundo real, talvez seja necessário saber quantas entradas estão disponíveis em um determinado fluxo. Não é prático fazer uma chamada XRange com IDs mínimos e máximos possíveis para consultar todas as entradas por fluxo e contá -las programaticamente. Consome tempo para duas operações ler e contar programaticamente.

Portanto, Redis fornece um Xlen comando para contar entradas para um fluxo armazenado em uma chave especificada. Este comando tem uma complexidade constante de tempo, que é rápida para seus aplicativos.

Sintaxe

Xlen

O Xlen Comando retorna um número inteiro, o número de entradas armazenadas em um fluxo.

Os fluxos são um pouco diferentes de outros tipos de dados Redis, porque um fluxo pode existir com zero entradas. Redis Streams podem ter vários grupos de consumidores anexados. O Xdel O comando não excluirá o próprio fluxo, mesmo que todas as entradas tenham sido excluídas. Portanto, o Xlen O comando pode retornar 0 em dois casos:

  1. O fluxo está vazio ou todas as entradas já foram excluídas.
  2. A chave do fluxo não existe.

O fluxo armazenado na chave SurveyResponse: usuário02 é vazio. Mas tem dois grupos de consumidores anexados. Portanto, o fluxo existe. Em aplicativos do mundo real, você precisa fazer uma verificação explícita com o EXISTE comando para verificar se a tecla Redis existe ou não.

Exemplo: conte o número de usuários que participam de uma pesquisa on -line

Vamos supor que um restaurante tenha conduzido uma pesquisa on -line para obter uma classificação de estrelas de seus clientes em sua qualidade de serviço. Eles usaram um armazenamento de dados Redis na memória para acompanhar cada classificação do cliente. Cada entrada de fluxo consiste em alguns pares de valor de campo para armazenar a classificação como um ID inteiro e de usuário como uma string.

Vamos criar um fluxo usando o comando xadd.

XADD RestaurantSurververy * UserID 1 Classificação 3
XADD Restaurantsurververy * UserID 2 Classificação 5
XADD Restaurantsurververy * UserID 3 Classificação 1
XADD Restaurantsurververy * UserID 4 Classificação 5

Quatro entradas foram adicionadas ao fluxo armazenado na chave Restaurantes.

Em seguida, usaremos o Xlen comando para contar o número de usuários que participaram da pesquisa.

Xlen Restaurantentura

Saída:

Como esperado, o valor de retorno é 4. Suponha que mais de 10.000 clientes participaram da pesquisa. Então o Xlen O comando seria um salva -vidas. Até o comando Redis Xlen levaria tempo constante para contar os 4 clientes ou 10.000 clientes.

Conclusão

Os riachos Redis podem conter milhares de entradas até que a memória máxima seja alcançada, onde cada entrada se parece com um par de valor de campo. Geralmente, é pesado contar o número de entradas armazenadas em um fluxo em termos de programa. Consome tempo para duas operações como ler e contar. Portanto, Redis fornece a operação de contagem pronta para fora do comando Xlen. Tem complexidade de tempo constante que é rápida para usar em aplicações de alto desempenho. O comando xlen toma apenas a chave do fluxo como um parâmetro.