Table des matières
Qu'est-ce que Hyperloglog et pourquoi l'utiliser?
Comment utiliser efficacement PFADD et PFCOUNT
Quand s'attendre à une précision et quand ne pas
Conseils pratiques pour l'utilisation du monde réel
Maison base de données Redis Comment estimer le nombre unique d'un grand ensemble de données avec Hyperloglog? (PFADD, PFCOUNT)

Comment estimer le nombre unique d'un grand ensemble de données avec Hyperloglog? (PFADD, PFCOUNT)

Sep 24, 2025 am 03:04 AM
唯一计数

Hyperloglog fournit une méthode d'estimation de nombre unique et rapide et rapide dans Redis via les commandes PFADD et PFCount. 1. Hyperloglog est un algorithme de probabilité utilisé pour estimer le nombre d'éléments différents dans l'ensemble de données. Il ne nécessite qu'une petite quantité de mémoire fixe pour traiter les ensembles de données à grande échelle. Il convient au suivi des visiteurs indépendants ou des requêtes de recherche haute fréquence et d'autres scénarios; 2. PFADD est utilisé pour ajouter des éléments à Hyperloglog, et PfCount renvoie la valeur d'estimation de l'élément unique dans une ou plusieurs structures; 3. Utiliser des noms de clés significatifs, l'ajout de valeurs de chaîne directement et la fusion de plusieurs HLL pour éviter les calculs répétés sont les meilleures pratiques pour l'utilisation de PFADD et PFCount; 4. Hyperloglog a généralement une erreur inférieure à 2%, ce qui convient à l'analyse et à la surveillance des tendances, mais ne convient pas aux tâches critiques telles que la facturation qui nécessitent un comptage précis; 5. Chaque clé HLL occupe environ 12 Ko de mémoire. Dans les applications réelles, il peut être optimisé pour une utilisation via un stockage d'instructions indépendant, un fonctionnement par lots, une surveillance de la mémoire, etc., et peut être combiné avec d'autres types de données Redis pour étendre les fonctions.

Comment estimer le nombre unique d'un grand ensemble de données avec Hyperloglog? (PFADD, PFCOUNT)

L'estimation du nombre unique d'un grand ensemble de données est un défi commun dans les applications de Big Data. L'utilisation de l'implémentation Hyperloglog de Redis (via PFADD et PFCOUNT ) offre un moyen économe en mémoire et rapide de le faire.


Qu'est-ce que Hyperloglog et pourquoi l'utiliser?

Hyperloglog est un algorithme probabiliste conçu pour estimer le nombre d'éléments distincts (cardinalité) dans un ensemble de données. Il le fait avec une petite quantité fixe de mémoire - généralement seulement quelques kilobytes - quelle que soit la taille de l'ensemble de données. Cela le rend idéal pour le suivi des visiteurs uniques, des requêtes de recherche distinctes ou d'autres mesures à volume élevé où le comptage exact serait trop intensif par la mémoire.

Redis implémente cela via deux commandes:

  • PFADD : ajoute un ou plusieurs éléments à un hyperlog.
  • PFCOUNT : Renvoie le nombre estimé d'éléments uniques dans une ou plusieurs structures d'hyperloglog.

Par exemple:

 Utilisateurs PFADD User123 User456 User789
Utilisateurs de PfCount

Cela rendrait un décompte approprié près de 3.


Comment utiliser efficacement PFADD et PFCOUNT

L'utilisation de ces commandes est simple, mais il existe quelques meilleures pratiques à garder à l'esprit:

  • Utilisez des clés significatives : comme toute clé Redis, nommez vos HLL clairement en fonction de ce qu'ils suivent. Par exemple, hll:pageviews:homepage ou hll:users:daily .
  • Ajouter des valeurs sous forme de chaînes brutes : vous pouvez ajouter n'importe quelle entrée de chaîne; Redis les hache en interne. Il n'est pas nécessaire de pré-hash IDS, sauf si vous le faites pour la cohérence entre les systèmes.
  • Fusionne plusieurs HLL en cas de besoin : Si vous stockez des HLL quotidiens et que vous souhaitez un nombre hebdomadaire, utilisez PFCOUNT hll_2024_05_01 hll_2024_05_02 ... pour obtenir une estimation qui évite le double comptage.

Voici un exemple rapide:

 PFADD HLL_2024_05_01 USERA USERB
PFADD HLL_2024_05_02 USERB USERC
Pfcount hll_2024_05_01 hll_2024_05_02 # retourne ~ 3

Ceci est particulièrement utile lors de la gestion des données de la série chronologique ou des ensembles de données fragnés.


Quand s'attendre à une précision et quand ne pas

Hyperloglog donne un résultat probabiliste - généralement dans une marge d'erreur de 2%. Cela signifie que si vous insérez 1 million d'articles uniques, votre résultat pourrait être interdit d'environ 20 000 dans les deux cas.

  • La précision s'améliore avec l'échelle : à des cartes très basses (comme moins de 10), les estimations peuvent être plus rugueuses.
  • Évitez d'utiliser pour des dénombrements critiques : si vous avez besoin de numéros exacts - comme la facturation ou la conformité - HLL n'est pas le bon outil.
  • Bon pour les tendances et les analyses : comme il est rapide et léger, il est parfait pour les tableaux de bord, la surveillance et les tests A / B.

Notez également que chaque clé HLL dans Redis occupe environ 12 Ko de mémoire, ce qui est négligeable par rapport à des alternatives telles que des ensembles ou des filtres de floraison.


Conseils pratiques pour l'utilisation du monde réel

Si vous intégrez HLL dans un système de production, voici quelques considérations pratiques:

  • Stockez les HLL dans une instance Redis distincte ou un espace de noms si possible, pour éviter de mélanger avec des données de cache ou de session.
  • Utilisez les scripts LUA pour les opérations par lots si vous ajoutez de nombreux éléments à la fois.
  • Surveillez l'utilisation de la mémoire au fil du temps - bien que petite par clé, des milliers de HLL peuvent s'additionner.
  • Soyez prudent avec les TTL - si vous définissez des temps d'expiration courts, assurez-vous que vous ne perdez pas de données dont vous avez toujours besoin pour les agrégations.

Vous pouvez également combiner HLL avec d'autres types de données Redis. Par exemple, suivez les utilisateurs uniques appropriés avec HLL et maintenez des sessions actives avec un ensemble ou un ensemble trié.


Ce n'est pas magique, mais c'est des mathématiques intelligentes - et pour la plupart des cas d'utilisation, c'est plus que assez bon.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment supprimer les clés dans Redis en utilisant des modèles? Comment supprimer les clés dans Redis en utilisant des modèles? Sep 14, 2025 am 12:56 AM

Utilisez la commande SCAN pour coopérer avec un link pour supprimer en toute sécurité les touches qui correspondent aux modèles dans Redis. Tout d'abord, utilisez Scan0MatchPatternCount to Batch Obtient le nom de clé pour éviter le blocage; Ensuite, utilisez un link asynchrone pour améliorer les performances. Il est recommandé d'utiliser Redis-Cli--Scan - Pattern'pattern '| xargsredis-Cliunlink pour obtenir une suppression efficace sur la ligne de commande et interdire l'utilisation de la commande Keys dans des environnements de production.

Comment sauvegarder et restaurer une base de données Redis? Comment sauvegarder et restaurer une base de données Redis? Sep 16, 2025 am 01:06 AM

UsebgsaveformanualorConfiguresAavepointsForAutomMerdbSnapshotStobackupredis; 2.locateTheDump.rdbfileviaconfigandCopyitsECurely; 3.Torestore, Stopredis, remplaceTheRDBfile, AssurezProperperMissions, redémarrer, et GreredleaFinable

Comment exécuter Redis dans un conteneur Docker? Comment exécuter Redis dans un conteneur Docker? Sep 17, 2025 am 04:16 AM

Exécuter Redis avec Docker sans l'installer sur l'hôte, il peut être rapidement démarré via la commande dockerrun; il peut personnaliser les fichiers de configuration et les monter pour implémenter des politiques de mémoire et d'autres paramètres; Il peut persister les données en nommant le volume redis-data; Il est recommandé d'utiliser DockerCose pour faciliter le déploiement et la maintenance de l'environnement de développement.

Comment intégrer Redis avec une application Spring Boot? Comment intégrer Redis avec une application Spring Boot? Sep 19, 2025 am 01:28 AM

Ajoutez d'abord les dépendances de SpringDataredis, puis définissez les informations de connexion Redis dans le fichier de configuration, puis activez le cache via @EnableCaching et utilisez des annotations de cache, et enfin fonctionnez des données via Redetemplate ou StringRedistemplate pour réaliser le cache, le stockage de session ou l'accès aux données à grande vitesse.

Comment vider une base de données Redis ou toutes les bases de données? Comment vider une base de données Redis ou toutes les bases de données? Sep 24, 2025 am 01:30 AM

UseflushdbtoClearTheCurrentDatabaseorflushallForAllDatabases; modes d'ORSYNC (blocage) BothSupportAsync (arrière-plan), avec AsyncpreferreDinProductionToAvoidlatence.

Comment installer Redis sur Ubuntu? Comment installer Redis sur Ubuntu? Sep 20, 2025 am 12:52 AM

L'installation de redis peut être effectuée via APT ou du code source, et APT est plus simple; 2. Mettez à jour l'index du package et installez Redis-Server; 3. Démarrer et activer le star de l'auto-mise à pied; 4. Utilisez Redis-Cliping pour tester Pong; 5. Fichiers de configuration facultatifs pour ajuster les liaisons, les mots de passe, etc.; 6. Redémarrez le service et complétez l'installation.

Quel modèle de persistance dois-je choisir pour mon application? Quel modèle de persistance dois-je choisir pour mon application? Sep 15, 2025 am 01:13 AM

Le choix d'un modèle de persistance nécessite des compromis en fonction des exigences d'application, du comportement de charge et du type de données. Les modèles communs incluent la mémoire uniquement (rapide mais non durable), le stockage du disque (lent mais persistant), le mode hybride (à la fois la vitesse et durable) et l'écriture-pré-log (persistance élevée). Si vous traitez les données clés, vous devez choisir une base de données WAL ou ACID; Si vous pouvez tolérer une petite quantité de perte de données, vous pouvez choisir une mémoire ou un modèle hybride. Dans le même temps, considérons la complexité du fonctionnement et de la maintenance, telles que les environnements cloud, vous devez choisir une bonne solution intégrée. Les erreurs courantes doivent être évitées, comme le traitement par erreur des instantanés comme des garanties durables, en ignorant les tests de récupération des accidents, la fréquence de synchronisation sans tir, etc. En bref, il est essentiel de clarifier les priorités et d'effectuer des tests de scénario d'exception.

Comment estimer le nombre unique d'un grand ensemble de données avec Hyperloglog? (PFADD, PFCOUNT) Comment estimer le nombre unique d'un grand ensemble de données avec Hyperloglog? (PFADD, PFCOUNT) Sep 24, 2025 am 03:04 AM

Hyperloglog fournit une méthode d'estimation de nombre unique et rapide et rapide dans Redis via les commandes PFADD et PFCount. 1. Hyperloglog est un algorithme de probabilité utilisé pour estimer le nombre d'éléments différents dans l'ensemble de données. Il ne nécessite qu'une petite quantité de mémoire fixe pour traiter les ensembles de données à grande échelle. Il convient au suivi des visiteurs indépendants ou des requêtes de recherche haute fréquence et d'autres scénarios; 2. PFADD est utilisé pour ajouter des éléments à Hyperloglog, et PfCount renvoie la valeur d'estimation de l'élément unique dans une ou plusieurs structures; 3. Utiliser des noms de clés significatifs, l'ajout de valeurs de chaîne directement et la fusion de plusieurs HLL pour éviter les calculs répétés sont les meilleures pratiques pour l'utilisation de PFADD et PFCount; 4. Hyperlo

See all articles