Comment utiliser Redis Streams

Comment utiliser Redis Streams

Les flux sont une structure de données simple mais polyvalente et puissante qui vous permet d'implémenter les flux dans Redis. Les flux sont des types intégrés à partir de redis version 5.0 et peut aider à supprimer les limites de la structure des données du journal.

Dans cet article, nous nous concentrerons sur l'utilisation et le travail avec Redis Streams plutôt que sur la mise en œuvre réelle. Vous pouvez cependant vérifier les documents pour plus.

Redis crée un flux

Pour créer un flux dans Redis, nous utilisons la commande XADD suivie du nom du flux, de l'ID, de la clé et des données comme paramètres.

La syntaxe est comme indiqué:

Xadd [nom de flux] [id] [clé] [data]

L'exemple est comme indiqué:

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

Dans l'exemple ci-dessus, nous exécutons la commande XADD pour ajouter une nouvelle entrée de flux. Dans notre exemple, donnez le datastream d'entrée avec un identifiant unique.

Bien que vous puissiez définir un ID manuellement, nous utilisons l'astérisque pour dire à Redis de générer automatiquement un identifiant unique. Ceci est la sortie de la commande ci-dessus.

NOTE: Chaque IP générée est incrémentée de façon monotone par rapport aux précédents. Dans la plupart des cas, vous aurez rarement besoin de définir l'ID pour une entrée manuellement. Nous pouvons le faire comme indiqué dans la commande ci-dessous:

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

Dans la commande ci-dessus, nous spécifions manuellement l'ID d'entrée.

L'entrée contient un champ et une valeur IP et IP correspondant.

Redis ajouter du flux avec limite

Dans certains cas, vous ne voudrez peut-être pas que les entrées de flux dépassent une valeur spécifiée. Vous pouvez le faire en spécifiant le paramètre Maxlen comme:

XADD DATASTREAM MAXLEN 100 * IP 231.17.140.219

Entrées Redis Stream

Pour obtenir le nombre d'entrées dans un flux Redis, nous pouvons utiliser la commande xlen comme:

127.0.0.1: 6379> Xlen Datastream
(entier) 3

Cela devrait renvoyer un entier dénotant le nombre d'entrées dans le flux.

Obtenir DAT du flux

Nous pouvons itérer les entrées dans un flux en spécifiant les ID de démarrage et de fin comme indiqué dans la commande:

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 "

L'utilisation des paramètres - + (inférieur et supérieur) renvoie toutes les entrées du flux. Vous pouvez également spécifier une plage comme:

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 "

La commande doit renvoyer les entrées dans la plage d'ID spécifiée.

Redis a tout lu

Pour lire chaque entrée dans le flux à partir du haut, utilisez la commande xRead comme indiqué:

127.0.0.1: 6379> Xread Count 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 "

Pour lire uniquement les nouvelles données à leur arrivée, utilisez la commande comme:

127.0.0.1: 6379> Xread Block 10000 Streams Datastream $

La commande attendra à partir de toutes les entrées de flux pour les millisecondes spécifiées, puis fermera. Dans notre cas, nous avons fixé l'attente de 10000 millisecondes.

Conclusion

Ce tutoriel fournit les bases du travail avec les flux de données dans Redis. Vérifiez les documents pour plus.