Redis Setbit

Redis Setbit
“La stringa è il tipo di dati Redis più fondamentale, che può contenere oggetti JSON, sequenze di byte, una matrice di valori binari e testi semplici. Il fatto più influente sulle stringhe di Redis è che possono essere trattati come un vettore di bit. Quindi, le stringhe Redis possono essere utilizzate per rappresentare le bitmap. In breve, una bitmap Redis può essere vista come una serie di bit memorizzati in una stringa Redis."

Ogni bit nella bitmap si trova utilizzando un valore di offset. Il valore di offset di un determinato bit viene calcolato in base alle coordinate X e Y. La seguente formula matematica può essere applicata per calcolare l'offset di un determinato bit.

Offset = Y Coordinate * max_width_of_map + x Coordinate

Consideriamo la seguente bitmap e come appare il valore di offset per diversi bit.

I valori su ciascun bit possono essere impostati utilizzando il valore di offset. Redis fornisce il comando setbit per impostare un valore bit su 0 o 1. In questa guida, discuteremo della sintassi e dei casi d'uso del comando setbit.

Il comando setBit

Il comando setbit viene utilizzato per manipolare i bit memorizzati a un determinato offset in una stringa Redis. In particolare, questo comando imposta il valore di un determinato bit su 1 o 0. Redis Bitmap può contenere fino a 2^32-1 offset che limita la dimensione massima di una bitmap a 512 MB. Inoltre, gli offset bitmap iniziano dall'indice 0 °.

Quanto segue è la sintassi del comando setbit.

Valore di offset del tasto SETBIT

chiave: Il nome della chiave Redis, che memorizza un valore di stringa.

compensare: Il valore offset del bit.

valore: Il valore del bit. Questo può essere 1 o 0.

Se la chiave non esiste, il comando setbit creerà un nuovo valore stringa e imposterà il valore bit in un offset specificato. Inoltre, il comando setbit opera sulla complessità del tempo O (1) che è un processo considerevolmente veloce. Questo potrebbe variare leggermente quando imposteremo il bit 2^31-1 in una bitmap quando la chiave specificata non esiste o memorizza un valore di stringa molto piccolo perché la memoria per tutti i bit intermedi dovrebbe essere allocata. Ci vorrebbe del tempo.

Il comando setbit restituisce il valore bit originale memorizzato all'offset nella stringa memorizzata in una chiave specificata.

Caso di utilizzo - Autorizzazioni del file system utilizzando Redis Bitmap

Supponiamo che un sistema operativo simile a UNIX mantenga le autorizzazioni di file utilizzando bitmap. Le autorizzazioni di lettura, scrivere ed eseguire per un determinato file/cartella sono archiviate in una bitmap come segue.

Impostiamo le autorizzazioni di sola lettura sul file denominato "a.TXT". Per chiarire, leggi l'autorizzazione è indicata dal bit situato all'offset 0o. Quindi, imposteremo il 0 ° offset su 1 chiamando il comando setbit come segue.

FILE SETBIT: ID: 100: Nome: A.txt 0 1

Verifichiamo se il 0 ° offset è stato impostato correttamente utilizzando il comando getbit, come mostrato nel seguente.

file getbit: id: 100: nome: a.txt 0

Non abbiamo bisogno di impostare esplicitamente gli altri due offset poiché il valore bit predefinito di un bit è 0. Pertanto, i bit di 1 ° e 2 ° offset dovrebbero essere implicitamente impostati su 0, come mostrato nei seguenti.

Allo stesso modo, possiamo impostare tutte e tre le autorizzazioni di lettura, scrivere ed eseguire le autorizzazioni nella cartella ABC come segue. È possibile impostare più bit chiamando il comando setbit più volte.

Cartella setBit: ID: 3: Nome: ABC 0 1
Cartella SetBit: ID: 3: Nome: ABC 1 1
Cartella SetBit: ID: 3: Nome: ABC 2 1

Controlliamo i valori di 3 bit usando il comando getbit.

Cartella getbit: ID: 3: Nome: ABC 0
Cartella getbit: ID: 3: Nome: ABC 1
Cartella getbit: ID: 3: Nome: ABC 2

Inoltre, possiamo usare il comando Redis Get per recuperare la rappresentazione della stringa di una determinata bitmap. Come puoi vedere nel seguente output, il valore esagonale è stato restituito.

Il valore decimale uguale sarebbe 224.

Nel complesso, il comando setbit può essere effettivamente utilizzato per manipolare il bit di bitmap.

Conclusione

In sintesi, il comando setbit viene utilizzato per cancellare o impostare il valore bit in un dato offset in una stringa Redis memorizzata con una determinata chiave. Come accennato, una stringa Redis può essere trattata come una serie di bit che può rappresentare una struttura di dati BitMap. Inoltre, il comando setbit opera su bitmap in O (1) complessità del tempo. Come hai visto nei casi d'uso, è possibile impostare più bit chiamando il comando setbit più volte. Con l'aiuto del comando Redis Get, è possibile recuperare il valore della stringa della bitmap.