Tous les produits
Search
Centre de documentation

Tair (Redis® OSS-Compatible):Sélectionner des utilisateurs avec TairRoaring

Dernière mise à jour :Aug 08, 2026

À grande échelle, la sélection d'utilisateurs par tags — fondement du marketing de précision, des recommandations personnalisées et de la gestion des risques — exige une structure de données bitmap capable de gérer des centaines de millions d'entrées éparses, d'exécuter des intersections d'ensembles en quelques millisecondes et de rester stable sous charge concurrente. Les bitmaps natifs de Redis Open-Source Edition atteignent rapidement leurs limites sur ces trois points. TairRoaring, une structure de données roaring bitmap intégrée à Tair (Enterprise Edition), lève ces contraintes grâce à des optimisations internes qui ne nécessitent aucune modification côté application.

Pourquoi les bitmaps natifs sont insuffisants

Les bitmaps de Redis Open-Source Edition imposent trois contraintes qui s'aggravent avec le volume de données :

Contrainte Impact
Limite de taille de l'espace de clés Gaspillage important d'espace pour les données de tags éparses
Opérations bitmap basées sur des chaînes Nécessite un code d'orchestration côté client ; le temps aller-retour (RTT) triple
Clés volumineuses Instabilité du cluster lors de charges de travail intensives de tagging

Comment TairRoaring résout ces contraintes

TairRoaring optimise l'algorithme roaring bitmap via trois techniques transparentes au sein du moteur Tair (Enterprise Edition) :

  • Index à deux niveaux et conteneurs dynamiques : TairRoaring partitionne les données bitmap grâce à une structure d'index à deux niveaux. Il gère automatiquement les jeux de données denses et épars sans sharding manuel, éliminant ainsi le problème des clés volumineuses au niveau de la structure de données.

  • SIMD, vectorisation et algorithmes popcount : Le parallélisme SIMD (Single Instruction, Multiple Data) et la vectorisation, combinés au comptage de cardinalité par popcount, accélèrent les opérations d'intersection (AND), d'union (OR) et de différence (DIFF).

  • Environnement d'exécution haute performance de Tair : Les opérations s'exécutent directement dans le moteur Tair (Enterprise Edition), garantissant la stabilité des performances du cluster même sous de fortes charges concurrentes à grande échelle.

Par rapport aux bitmaps natifs de Redis, TairRoaring réduit la consommation mémoire et accélère les opérations sur les collections. Comparé à l'orchestration bitmap basée sur des chaînes, il offre une latence plus faible et un débit plus élevé en supprimant les RTT supplémentaires.

Sélectionner des utilisateurs par tag

La sélection d'utilisateurs par tags suit un pipeline en trois étapes.

Étape 1 : Construire le magasin de tags

  1. Stockez les caractéristiques des utilisateurs issues des bases de données relationnelles en utilisant des schémas de lignes, organisés par dimension (par exemple, démographie, comportement et préférences).

  2. Traitez les données brutes à la demande pour générer les mappages UID-vers-tag.

  3. Synchronisez les mappages mis à jour vers TairRoaring. Les mises à jour sont généralement effectuées dans un délai de deux jours suivant la génération des données métier correspondantes.

Étape 2 : Interroger les utilisateurs

Une fois le magasin de tags en place, TairRoaring prend en charge trois modèles de requête.

Vérifier si un utilisateur possède un tag spécifique

Pour déterminer si user1 possède le Tag-A (numéro de série 16161) :

TR.GETBIT user1 16161

Trouver les utilisateurs correspondant à une combinaison de tags

Pour trouver tous les utilisateurs qui possèdent à la fois le Tag-B et le Tag-C :

TR.BITOP result AND Tag-B Tag-C

TR.BITOP prend en charge les opérateurs AND, OR et DIFF, ce qui vous permet de construire des groupes d'utilisateurs logiques arbitraires à partir de vos ensembles de tags.

Recherche inversée : vérifier si un tag est associé à un UID spécifique

Dans les scénarios de gestion des risques, les tags représentent des attributs et les UID sont les valeurs vérifiées. Inversez l'ordre des clés pour effectuer la recherche :

TR.GETBIT Tag-A user1

Étape 3 : Utiliser les résultats de la requête

Transmettez le bitmap de sortie ou la valeur de bit aux systèmes en aval pour un traitement ultérieur.

Étapes suivantes