Redis Stream peut stocker des paires de valeurs de champ dans ses nœuds macro. Il est efficace et rapide pour accéder aux entrées de flux car il est basé sur une structure d'arbre radix. Les entrées ressemblent aux paires de valeurs clés du hachage redis.
L'illustration précédente montre un flux stocké à la clé «Survery Response: user01». Il contient n nombre d'entrées.
Comptez les entrées de flux avec Xlen
Dans les applications du monde réel, nous pourrions avoir besoin de savoir combien de candidatures sont disponibles dans un flux donné. Il n'est pas pratique de passer un appel XRange avec des ID minimum et maximum possibles pour interroger toutes les entrées par flux et les compter par programme. Il consomme du temps pour deux opérations à lire et à compter par programme.
Par conséquent, Redis fournit un Xlen Commande pour compter les entrées pour un flux stocké sur une clé spécifiée. Cette commande a une complexité de temps constante, ce qui est rapide pour vos applications.
Syntaxe
Xlen
Le Xlen la commande renvoie un entier, le nombre d'entrées stockées dans un flux.
Les flux sont un peu différents des autres types de données Redis car un flux peut exister avec des entrées zéro. Redis Streams peut avoir plusieurs groupes de consommateurs attachés. Le Xdel La commande ne supprimera pas le flux lui-même même si toutes les entrées ont été supprimées. D'où le Xlen La commande peut retourner 0 dans deux cas:
Le flux stocké à la clé SurveyResponse: user02 est un vide. Mais il a deux groupes de consommateurs attachés. Par conséquent, le flux existe. Dans les applications du monde réel, vous devez effectuer une vérification explicite avec le Existant commande pour vérifier si la clé redis existe ou non.
Exemple: comptez le nombre d'utilisateurs participant à une enquête en ligne
Supposons qu'un restaurant a mené une enquête en ligne pour obtenir une note d'étoile de ses clients sur leur qualité de service. Ils ont utilisé un magasin de données Redis en mémoire pour garder une trace de chaque note client. Chaque entrée de flux se compose de quelques paires de valeurs de champ pour stocker la note en tant qu'entier et ID utilisateur en tant que chaîne.
Créons un flux en utilisant la commande xadd.
XADD restaurentUrvery * UserId 1 note 3
XADD restaurentSurvery * UserId 2 note 5
XADD restaurentSurvery * UserId 3 Note 1
XADD restaurentUrvery * UserId 4 note 5
Quatre entrées ont été ajoutées au flux stocké à la clé RestaurentSurvey.
Ensuite, nous utiliserons le Xlen commande de compter le nombre d'utilisateurs qui ont participé à l'enquête.
xlen RestaurentSurvery
Sortir:
Comme prévu, la valeur de retour est 4. Supposons que plus de 10 000 clients ont participé à l'enquête. Puis le Xlen la commande serait une bouée de sauvetage. Même la commande redis xlen prendrait un temps constant pour compter les 4 clients ou 10 000 clients.
Conclusion
Les flux Redis peuvent contenir des milliers d'entrées jusqu'à ce que la mémoire maximale soit atteinte, où chaque entrée ressemble à une paire de valeurs de champ. Habituellement, il est lourde de compter le nombre d'entrées stockées dans un flux en termes de programme. Il consomme du temps pour deux opérations comme la lecture et le comptage. Par conséquent, Redis fournit une opération de comptage hors de la boîte avec la commande xlen. Il a une complexité de temps constante qui est rapide à utiliser dans des applications à haute performance. La commande xlen ne prend la clé du flux que comme paramètre.