Redis Setbit

Redis Setbit
“A string é o tipo de dados Redis mais fundamental, que pode conter objetos JSON, sequências de bytes, uma matriz de valores binários e textos simples. O fato mais influente sobre Redis Strings é que eles podem ser tratados como um vetor de bits. Portanto, as cordas Redis podem ser usadas para representar bitmaps. Em resumo, um bitmap Redis pode ser visto como uma variedade de bits armazenados em uma corda Redis.”

Cada bit no bitmap está localizado usando um valor de deslocamento. O valor de deslocamento de um determinado bit é calculado com base nas coordenadas x e y. A fórmula matemática a seguir pode ser aplicada para calcular o deslocamento de uma determinada parte.

Offset = Y Coordenine * max_width_of_map + x coordenada

Vamos considerar o seguinte bitmap e como é o valor do deslocamento para diferentes bits.

Os valores em cada bit podem ser definidos usando o valor de deslocamento. Redis fornece o comando setbit para definir um valor de um bit como 0 ou 1. Neste guia, discutiremos a sintaxe e os casos de uso do comando setbit.

O comando setbit

O comando setbit é usado para manipular bits armazenados em um determinado deslocamento em uma corda Redis. Especificamente, este comando define o valor de um determinado bit para 1 ou 0. Redis Bitmap pode conter até 2^32-1 compensações, o que limita o tamanho máximo de um bitmap a 512 MB. Além disso, as compensações de bitmap começam no 0º índice.

A seguir, a sintaxe do comando setbit.

Valor do deslocamento da chave do setbit

chave: O nome da chave Redis, que armazena um valor de string.

desvio: O valor de deslocamento da parte.

valor: O valor da parte. Isso pode ser 1 ou 0.

Se a chave não existir, o comando setbit criará um novo valor de string e definirá o valor de bit em um deslocamento especificado. Além disso, o comando setbit opera na complexidade do tempo O (1), que é um processo consideravelmente rápido. Isso pode variar um pouco quando vamos definir um bit 2^1-1 em um bitmap quando a tecla especificada não existir ou armazena um valor de sequência muito pequeno, porque a memória para todos os bits intermediários deve ser alocada. Levaria algum tempo.

O comando setbit retorna o valor do bit original armazenado no deslocamento na string armazenada em uma chave especificada.

Usar caso - Permissões do sistema de arquivos usando o Redis Bitmap

Vamos supor que um sistema operacional do tipo UNIX mantém permissões de arquivo usando bitmaps. As permissões de leitura, gravação e execução para um determinado arquivo/pasta são armazenadas em um bitmap da seguinte forma.

Vamos definir as permissões somente leitura para o arquivo chamado “A.TXT". Para deixar claro, a permissão de leitura é indicada pela parte localizada no 0º deslocamento. Então, estaremos definindo o 0º deslocamento para 1 chamando o comando setbit da seguinte maneira.

Arquivo Setbit: ID: 100: Nome: A.txt 0 1

Vamos verificar se o deslocamento 0 foi definido corretamente usando o comando getBit, como mostrado no seguinte.

Getbit Arquivo: ID: 100: Nome: A.txt 0

Não precisamos definir os outros dois compensações explicitamente, pois o valor do bit padrão de um pouco é 0. Portanto, os bits de primeiro e 2º deslocamento devem ser implicitamente definidos como 0, como mostrado no seguinte.

Da mesma forma, podemos definir todos os três lidos, escrever e executar permissões na pasta ABC da seguinte forma. Vários bits podem ser definidos chamando o comando setbit várias vezes.

Pasta Setbit: ID: 3: Nome: ABC 0 1
Pasta Setbit: Id: 3: Nome: ABC 1 1
Pasta Setbit: ID: 3: Nome: ABC 2 1

Vamos verificar os valores de 3 bits usando o comando getbit.

Getbit Pasta: Id: 3: Nome: ABC 0
Getbit Pasta: Id: 3: Nome: ABC 1
Getbit Pasta: Id: 3: Nome: ABC 2

Além disso, podemos usar o comando Redis Get para recuperar a representação da string de um determinado bitmap. Como você pode ver na saída a seguir, o valor hexadecimal foi devolvido.

O valor decimal igual seria 224.

No geral, o comando setbit pode ser efetivamente usado para manipular o bit de bitmap.

Conclusão

Em resumo, o comando setbit é usado para limpar ou definir o valor do bit em um determinado deslocamento em uma sequência Redis armazenada em uma determinada chave. Como mencionado, uma string redis pode ser tratada como uma variedade de bits que podem representar uma estrutura de dados de bitmap. Além disso, o comando setbit opera em bitmaps na complexidade do tempo O (1). Como você viu nos casos de uso, vários bits podem ser definidos chamando o comando setbit várias vezes. Com a ajuda do Redis Get Command, o valor da string do bitmap pode ser recuperado.