Chaque bit du bitmap est situé en utilisant une valeur de décalage. La valeur de décalage d'un bit donné est calculée sur la base des coordonnées x et y. La formule mathématique suivante peut être appliquée pour calculer le décalage d'un bit donné.
Offset = coordonnée y * max_width_of_map + x coordonnéeConsidérons le bitmap suivant et à quoi ressemble la valeur de décalage pour différents bits.
Les valeurs de chaque bit peuvent être définies en utilisant la valeur de décalage. Redis fournit la commande setbit pour définir une valeur bit sur 0 ou 1. Dans ce guide, nous discuterons de la syntaxe et des cas d'utilisation de la commande setbit.
La commande setbit
La commande setbit est utilisée pour manipuler les bits stockés à un décalage donné dans une chaîne redis. Plus précisément, cette commande définit la valeur d'un bit donné à 1 ou 0. Redis Bitmap peut contenir jusqu'à 2 ^ 32-1 décalages, ce qui limite la taille maximale d'un bitmap à 512 Mo. De plus, les décalages bitmap commencent à partir du 0ème index.
Ce qui suit est la syntaxe de la commande setbit.
Valeur de décalage de la clé setbitclé: Le nom de la clé redis, qui stocke une valeur de chaîne.
compenser: La valeur de décalage du bit.
valeur: La valeur du bit. Cela peut être 1 ou 0.
Si la clé n'existe pas, la commande setbit créera une nouvelle valeur de chaîne et définira la valeur de bit à un décalage spécifié. De plus, la commande setbit fonctionne sur une complexité temporelle O (1) qui est un processus considérablement rapide. Cela peut varier légèrement lorsque nous allons régler le bit 2 ^ 31-1 dans un bitmap lorsque la clé spécifiée n'existe pas ou stocke une très petite valeur de chaîne car la mémoire de tous les bits intermédiaires doit être allouée. Ça prendrait du temps.
La commande setbit renvoie la valeur de bit d'origine stockée au décalage dans la chaîne stockée à une touche spécifiée.
Cas d'utilisation - Autorisations du système de fichiers à l'aide de redis bitmap
Supposons qu'un système d'exploitation de type Unix maintient les autorisations de fichiers à l'aide de bitmaps. Les autorisations de lecture, d'écriture et d'exécution pour un fichier / dossier donné sont stockées dans un bitmap comme suit.
Définissons les autorisations en lecture seule sur le fichier nommé «A.SMS". Pour indiquer clairement, la permission de lecture est indiquée par le bit situé au 0ème décalage. Ainsi, nous définirons le 0e décalage sur 1 en appelant la commande setbit comme suit.
Fichier SetBit: ID: 100: Nom: A.txt 0 1Vérinons si le 0e décalage a été correctement défini à l'aide de la commande getBit, comme indiqué dans ce qui suit.
Fichier GetBit: ID: 100: Nom: A.txt 0Nous n'avons pas besoin de définir explicitement les deux autres décalages car la valeur de bits par défaut est 0. Par conséquent, les 1er et 2e bits de décalage doivent être implicitement définis sur 0, comme indiqué dans les éléments suivants.
De même, nous pouvons définir les trois autorisations de lecture, d'écriture et d'exécution des autorisations sur le dossier ABC comme suit. Plusieurs bits peuvent être définis en appelant la commande setbit plusieurs fois.
dossier setbit: id: 3: nom: ABC 0 1Vérifions les valeurs de 3 bits en utilisant la commande getbit.
Folder Getbit: ID: 3: Nom: ABC 0De plus, nous pouvons utiliser la commande redis get pour récupérer la représentation de la chaîne d'un bitmap donné. Comme vous pouvez le voir dans la sortie suivante, la valeur hexagonale a été retournée.
La valeur décimale égale serait de 224.
Dans l'ensemble, la commande setbit peut être effectivement utilisée pour manipuler le bit de bitmap.
Conclusion
En résumé, la commande setbit est utilisée pour effacer ou définir la valeur bit à un décalage donné dans une chaîne redis stockée à une clé donnée. Comme mentionné, une chaîne redis peut être traitée comme un tableau de bits qui peut représenter une structure de données bitmap. De plus, la commande setbit fonctionne sur les bitmaps en o (1) complexité temporelle. Comme vous l'avez vu dans les cas d'utilisation, plusieurs bits peuvent être définis en appelant la commande setbit plusieurs fois. Avec l'aide de la commande redis get, la valeur de chaîne du bitmap peut être récupérée.