Como usar riachos Redis

Como usar riachos Redis

Os fluxos são uma estrutura de dados simples, mas versátil e poderosa, que permite implementar fluxos em redis. Os fluxos são tipos internos da versão 5 Redis.0 e pode ajudar a remover as limitações da estrutura de dados de log.

Neste artigo, vamos nos concentrar em usar e trabalhar com fluxos Redis, em vez da implementação real. Você pode, no entanto, verificar os documentos para mais.

Redis Crie Stream

Para criar um fluxo em Redis, usamos o comando xadd seguido pelo nome do fluxo, ID, chave e dados como parâmetros.

A sintaxe é como mostrado:

Xadd [nome do fluxo] [id] [key] [dados]

Exemplo é como mostrado:

127.0.0.1: 6379> XADD DATASTREAM * IP 231.17.140.219
"1646904960928-0"

No exemplo acima, executamos o comando xadd para adicionar uma nova entrada de fluxo. Em nosso exemplo, dê ao banco de dados de entrada com um ID exclusivo.

Embora você possa definir um ID manualmente, usamos o asterisco para dizer ao Redis para generalizar automaticamente um identificador único. Esta é a saída do comando acima.

OBSERVAÇÃO: Todo IP gerado é monotonicamente incrementado dos anteriores. Na maioria dos casos, você raramente precisará definir o ID para uma entrada manualmente. Podemos fazer isso como mostrado no comando abaixo:

127.0.0.1: 6379> XADD DATASTREAM 74376383723373 IP 171.17.140.219
"74376383723373-0"

No comando acima, especificamos manualmente o ID de entrada.

A entrada contém um campo e valor IP e IP correspondente.

Redis Adicionar fluxo com limite

Em alguns casos, você pode não querer que as entradas do fluxo sejam acima de um valor especificado. Você pode fazer isso especificando o parâmetro maxlen como:

XADD DATASTREAM MAXLEN 100 * IP 231.17.140.219

Entradas de fluxo Redis

Para obter o número de entradas em um riacho Redis, podemos usar o comando xlen como:

127.0.0.1: 6379> XLEN DATASTREAM
(Inteiro) 3

Isso deve devolver um número inteiro denotando o número de entradas no fluxo.

Obtendo Dat do Stream

Podemos iterar sobre as entradas em um fluxo especificando os IDs iniciais e finais, como mostrado no comando:

127.0.0.1: 6379> XRANGE DATASTREAM - +
1) 1) "1646904960928-0"
2) 1) "IP"
2) "231.17.140.219 "
2) 1) "74376383723373-0"
2) 1) "IP"
2) "231.17.140.219 "
3) 1) "74376383723373-1"
2) 1) "IP"
2) "231.17.140.219 "

O uso dos parâmetros - + (limite inferior e superior) retorna todas as entradas no fluxo. Você também pode especificar um intervalo como:

127.0.0.1: 6379> XRANGE DATASTREAM 1646904960928-0 74376383723373-0
1) 1) "1646904960928-0"
2) 1) "IP"
2) "231.17.140.219 "
2) 1) "74376383723373-0"
2) 1) "IP"
2) "231.17.140.219 "

O comando deve retornar as entradas dentro do intervalo de identificação especificado.

Redis leia tudo

Para ler todas as entradas do fluxo a partir da parte superior, use o comando xread como mostrado:

127.0.0.1: 6379> xread contagem 100 streams datastream 0
1) 1) "Datastream"
2) 1) 1) "1646904960928-0"
2) 1) "IP"
2) "231.17.140.219 "
2) 1) "74376383723373-0"
2) 1) "IP"
2) "231.17.140.219 "
3) 1) "74376383723373-1"
2) 1) "IP"
2) "231.17.140.219 "

Para ler apenas novos dados à medida que chegarem, use o comando como:

127.0.0.1: 6379> xread bloco 10000 streams datastream $

O comando aguardará as entradas de fluxo para os milissegundos especificados e depois fechará. No nosso caso, definimos a espera por 10000 milissegundos.

Conclusão

Este tutorial fornece o básico de trabalhar com fluxos de dados em Redis. Verifique os documentos para mais.