Todos os produtos
Search
Central de documentação

Tair (Redis® OSS-Compatible):Roaring

Última atualização: Jul 08, 2026

O TairRoaring é uma estrutura de dados baseada no Tair para bitmaps do tipo Roaring. Este tópico descreve o TairRoaring e seus comandos suportados.

Introdução ao TairRoaring

Bitmap (também conhecido como bitset) é uma estrutura de dados comum que utiliza pouco armazenamento para otimizar consultas em grandes volumes de dados. Os bitmaps economizam mais espaço do que implementações baseadas em hash, mas não são adequados para armazenar dados esparsos. Para resolver essa questão, foram desenvolvidos os bitmaps compactados. Os Roaring bitmaps são um tipo de bitmap reconhecido pela indústria, sendo mais eficientes e equilibrados do que outros bitmaps compactados.

O TairRoaring otimiza os Roaring bitmaps das seguintes formas:

  • Consegue equilibrar desempenho e complexidade de espaço em diversos cenários por meio de índices de dois níveis e contêineres dinâmicos.

  • Utiliza técnicas de otimização como SIMD (Single Instruction, Multiple Data), vetorização e algoritmos popcount para aumentar a eficiência computacional, garantindo boa complexidade de tempo e espaço.

  • Aproveita o alto poder de processamento e a estabilidade oferecidos pelo Tair para atender a cenários de negócios exigentes.

Cenários típicos

O TairRoaring é ideal para setores como transmissões ao vivo, música e comércio eletrônico. Ele permite adicionar tags multidimensionais aos usuários, viabilizando casos de uso como recomendação personalizada e marketing de precisão.

Notas de versão

Importante

Alterações no TairRoaring V2:

  • TR.RANGEINTARRAY: O comando TR.RANGEINTARRAY do TairRoaring V1 foi renomeado para TR.RANGE no TairRoaring V2.

  • TR.SETRANGE: Na V1, a saída do comando era OK. Na V2, a saída passou a ser a quantidade de bits definidos como 1. Os demais comportamentos do comando permanecem inalterados.

  1. Em 13 de setembro de 2021, o TairRoaring V1 foi lançado para instâncias com versão secundária 1.7.20 ou superior.

  2. Em 11 de março de 2022, o TairRoaring V2 foi disponibilizado para instâncias com versão secundária 1.7.27 ou superior.

    Essa versão otimizou a implementação de alguns comandos e melhorou o desempenho geral. O TairRoaring V2 introduziu nove novos comandos, incluindo TR.SETBITS e TR.CLEARBITS, atualizou três comandos (dois deles ainda compatíveis com a V1) e renomeou um comando.

  3. Em 20 de abril de 2022, o TairRoaring V2.2 foi lançado para instâncias com versão secundária 1.8.1 ou superior.

    Esta versão adicionou os comandos TR.JACCARD, TR.CONTAINS e TR.RANK, além de ajustar as mensagens de erro retornadas quando uma chave não existe (o erro ERR key not found foi removido).

Melhores práticas

Segmentação de público usando TairRoaring

Requisitos

A instância deve ser do tipo Tair otimizada para memória. Caso sua instância otimizada para memória seja compatível com Redis 5.0, a versão secundária precisa ser 1.7.7 ou superior.

Nota

Versões secundárias mais recentes oferecem mais recursos e maior estabilidade. Recomendamos atualizar sua instância para a versão secundária mais recente. Para mais informações, consulte Atualizar a versão secundária de uma instância. Se a instância for do tipo cluster ou com divisão de leitura/escrita, recomendamos também atualizar os nós proxy para a versão secundária mais recente, garantindo que todos os comandos funcionem conforme o esperado.

Observações de uso

As operações descritas aplicam-se a dados TairRoaring em uma instância Tair.

Lista de comandos

Tipo

Comando

Sintaxe

Descrição

Alteração de versão

Operação de escrita

TR.SETBIT

TR.SETBIT key offset value

Define o bit especificado em uma chave TairRoaring como 1 ou 0 e retorna o valor original do bit. O deslocamento começa em 0.

- (N/A)

TR.SETBITS

TR.SETBITS key offset [offset1 offset2 ... offsetN]

Define o valor dos bits especificados em uma chave TairRoaring como 1. É possível especificar múltiplos valores de bit.

Adicionado na V2

TR.CLEARBITS

TR.CLEARBITS key offset [offset1 offset2 ... offsetN]

Define o valor dos bits especificados em uma chave TairRoaring como 0. Se o bit já tiver valor 0, nenhuma operação é executada. É possível especificar múltiplos valores de bit.

Adicionado na V2

TR.SETRANGE

TR.SETRANGE key start end

Define os bits dentro do intervalo especificado em uma chave TairRoaring como 1. O intervalo é fechado.

Atualizado na V2. Após a atualização do comando na V2, a saída passou a ser a quantidade de bits definidos como 1.

TR.APPENDBITARRAY

TR.APPENDBITARRAY key offset bitarray

Insere um array de bits após a posição especificada em um Roaring Bitmap, sobrescrevendo os dados originais. O array de bits consiste em 0 e 1.

Adicionado na V2

TR.FLIPRANGE

TR.FLIPRANGE key start end

Inverte os valores dos bits dentro do intervalo especificado em uma chave TairRoaring, alterando de 0 para 1 ou de 1 para 0. O intervalo é fechado. Se a chave não existir, ela será criada como um conjunto vazio antes da execução da operação.

Adicionado na V2

TR.APPENDINTARRAY

TR.APPENDINTARRAY key value [value1 value2 ... valueN]

Define o valor dos bits especificados em uma chave TairRoaring como 1. É possível especificar múltiplos valores de bit.

Nota

No TairRoaring V2, recomendamos usar TR.SETBITS em vez deste comando.

-

TR.SETINTARRAY

TR.SETINTARRAY key value [value1 value2 ... valueN]

Cria uma chave TairRoaring com base no array de inteiros especificado. Se a chave já existir, este comando sobrescreve os dados nela contidos.

Nota

No TairRoaring V2, recomendamos usar TR.SETBITS em vez deste comando.

-

TR.SETBITARRAY

TR.SETBITARRAY key value

Cria uma chave TairRoaring com base na string de array de bits especificada. A string consiste em 0 e 1. Se a chave já existir, este comando sobrescreve os dados nela contidos.

Nota

No TairRoaring V2, recomendamos usar TR.APPENDBITARRAY em vez deste comando.

-

TR.BITOP

TR.BITOP destkey operation key [key1 key2 ... keyN]

Executa operações de conjunto em Roaring Bitmaps e armazena o resultado em destkey. O comando suporta as operações AND, OR, XOR, NOT e DIFF.

Nota

Este comando não está disponível para chaves distribuídas em diferentes slots em instâncias cluster.

-

TR.BITOPCARD

TR.BITOPCARD operation key [key1 key2 ... keyN]

Executa uma operação bitwise em múltiplas chaves TairRoaring. As operações bitwise AND, OR, XOR, NOT e DIFF são suportadas.

Nota

Este comando não está disponível para chaves distribuídas em diferentes slots em instâncias cluster.

Adicionado na V2

TR.OPTIMIZE

TR.OPTIMIZE key

Otimiza o armazenamento de uma chave TairRoaring. Execute este comando se a chave for relativamente grande e usada principalmente para operações de leitura após sua criação.

-

Operação de leitura

TR.GETBIT

TR.GETBIT key offset

Recupera o valor do bit especificado de uma chave TairRoaring.

-

TR.GETBITS

TR.GETBITS key offset [offset1 offset2 ... offsetN]

Recupera o valor dos bits especificados de uma chave TairRoaring. É possível especificar múltiplos bits para recuperação.

Adicionado na V2

TR.BITCOUNT

TR.BITCOUNT key [start end]

Conta o número de bits com valor 1 dentro do intervalo especificado em uma chave TairRoaring. O intervalo é fechado.

Atualizado na V2 com compatibilidade retroativa.

TR.BITPOS

TR.BITPOS <key> <value> [count]

Recupera o deslocamento do bit que possui o número ordinal count. O bit pode ter valor 1 ou 0. O parâmetro count é opcional e tem valor padrão 1. O valor 1 indica o primeiro bit encontrado usando a contagem da esquerda para a direita.

Atualizado na V2 com compatibilidade retroativa.

TR.SCAN

TR.SCAN key start_offset [COUNT count]

Varre todos os bits localizados após um bit especificado em uma chave TairRoaring e retorna os deslocamentos correspondentes à contagem de bits varridos com valor 1. O cursor retornado corresponde ao deslocamento da chave.

Nota

Este comando pode ou não varrer e retornar elementos adicionados ou excluídos.

Adicionado na V2

TR.RANGE

TR.RANGE key start end

Retorna os deslocamentos dos bits com valor 1 dentro do intervalo especificado em uma chave TairRoaring. O intervalo é fechado.

Renomeado de TR.RANGEINTARRAY na V1 para TR.RANGE na V2.

TR.RANGEBITARRAY

TR.RANGEBITARRAY key start end

Recupera uma string composta pelos valores de bit 0 e 1 dentro do intervalo especificado em uma chave TairRoaring. O intervalo é fechado.

Adicionado na V2

TR.MIN

TR.MIN key

Recupera o deslocamento do primeiro bit com valor 1 em uma chave TairRoaring. Se nenhum bit tiver valor 1, retorna -1.

-

TR.MAX

TR.MAX key

Recupera o deslocamento do último bit com valor 1 em um Roaring Bitmap. Se nenhum bit tiver valor 1, retorna -1.

-

TR.STAT

TR.STAT key [JSON]

Retorna informações estatísticas da chave TairRoaring especificada, incluindo o número de contêineres e o uso de memória.

Adicionado na V2

TR.JACCARD

TR.JACCARD key1 key2

Recupera o coeficiente de similaridade de Jaccard entre duas chaves TairRoaring. Quanto maior o coeficiente, maior a similaridade.

Nota

Este comando não está disponível para chaves distribuídas em diferentes slots em instâncias cluster.

Adicionado na V2.2

TR.CONTAINS

TR.CONTAINS key1 key2

Verifica se key2 contém key1. Em caso afirmativo, key1 é subconjunto de key2 e o valor 1 é retornado. Caso contrário, key1 não é subconjunto de key2 e o valor 0 é retornado.

Nota

Este comando não está disponível para chaves distribuídas em diferentes slots em instâncias cluster.

Adicionado na V2.2

TR.RANK

TR.RANK key offset

Recupera o número de bits com valor 1 no intervalo entre o primeiro bit e o bit especificado. O intervalo é fechado.

Adicionado na V2.2

Operação de uso geral

DEL

DEL key [key ...]

Exclui uma ou mais chaves TairRoaring.

-

Nota
  • A sintaxe dos comandos segue as convenções abaixo:

    • Palavra-chave em maiúsculas: indica a palavra-chave do comando.

    • Texto em itálico: indica variáveis.

    • [opções]: indica que os parâmetros entre colchetes são opcionais. Parâmetros sem colchetes são obrigatórios.

    • A|B: indica que os parâmetros separados por barras verticais (|) são mutuamente exclusivos. Apenas um deles deve ser especificado.

    • ...: indica que o parâmetro anterior pode ser repetido várias vezes.

  • Neste tópico, as letras usadas nas expressões de complexidade de tempo têm os seguintes significados:

    • C representa o argc ou o intervalo de parâmetros.

    • M representa o número de bits definidos como 1 em uma estrutura de dados, como o número de nós em uma lista ou campos em um hash.

TR.SETBIT

Categoria

Descrição

Sintaxe

TR.SETBIT key offset value

Complexidade de tempo

O(1)

Descrição do comando

Define o bit especificado em uma chave TairRoaring como 1 ou 0 e retorna o valor original do bit. O deslocamento começa em 0.

Parâmetro

  • Key: Nome da chave (estrutura de dados TairRoaring).

  • offset: Inteiro que representa o deslocamento do bit a ser definido, com intervalo de valores de 0 a 2^32.

  • value: Valor do bit a ser definido, podendo ser 1 ou 0.

Saída

  • Se a operação for bem-sucedida, retorna o valor do bit (0 ou 1).

  • Caso contrário, retorna uma mensagem de erro.

Exemplo

Comando de exemplo:

TR.SETBIT foo 0 1

Saída de exemplo:

(integer) 0

TR.SETBITS

Item

Descrição

Sintaxe

TR.SETBITS key offset [offset1 offset2 ... offsetN]

Complexidade de tempo

O(C)

Descrição do comando

Define o valor dos bits especificados em uma chave TairRoaring como 1. É possível especificar múltiplos valores de bit.

Opções

  • Key: Nome da chave (estrutura de dados TairRoaring).

  • offset: Inteiro que representa o deslocamento do bit a ser definido, com intervalo de valores de 0 a 2^32.

Saída

  • Se a operação for bem-sucedida, retorna a quantidade de bits na chave definidos como 1.

  • Caso contrário, retorna uma mensagem de erro.

Exemplo

Comando de exemplo:

TR.SETBITS foo 9 10

Saída de exemplo:

(integer) 5

TR.CLEARBITS

Item

Descrição

Sintaxe

TR.CLEARBITS key offset [offset1 offset2 ... offsetN]

Complexidade de tempo

O(C)

Descrição do comando

Define o valor dos bits especificados em uma chave TairRoaring como 0. Se o bit já tiver valor 0, nenhuma operação é executada. É possível especificar múltiplos valores de bit.

Parâmetro

  • Key: Nome da chave (estrutura de dados TairRoaring).

  • offset: Inteiro que representa o deslocamento do bit a ser definido, com intervalo de valores de 0 a 2^32.

Saída

  • Se a operação for bem-sucedida, retorna a quantidade de bits na chave definidos como 0.

  • Se a chave não existir, retorna 0.

  • Caso contrário, retorna uma mensagem de erro.

Exemplo

Comando de exemplo:

TR.CLEARBITS foo 9 10

Saída de exemplo:

(integer) 2

TR.SETRANGE

Item

Descrição

Sintaxe

TR.SETRANGE key start end

Complexidade de tempo

O(C)

Descrição do comando

Define os bits dentro do intervalo especificado em uma chave TairRoaring como 1. O intervalo é fechado.

Por exemplo, ao executar o comando TR.SETRANGE foo 1 3, o sistema cria a chave foo com o valor 0111.

Opções

  • Key: Nome da chave (estrutura de dados TairRoaring).

  • start: Valor inicial do intervalo. Valores válidos: 0 a 2^32.

  • end: Valor final do intervalo. Valores válidos: 0 a 2^32.

Saída

  • Se a operação for bem-sucedida, retorna a quantidade de bits na chave definidos como 1.

  • Caso contrário, retorna uma mensagem de erro.

Exemplo

Comando de exemplo:

TR.SETRANGE foo 1 3

Saída de exemplo:

(integer) 3

TR.APPENDBITARRAY

Item

Descrição

Sintaxe

TR.APPENDBITARRAY key offset bitarray

Complexidade de tempo

O(C)

Descrição do comando

Insere um array de bits em uma posição após o bit especificado em um Roaring Bitmap e substitui os dados originais. O array de bits consiste em 0 e 1.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • offset: o deslocamento inicial especificado (não incluindo este valor), com intervalo de valores de -1 a 2^32.

  • bitarray: o array de bits a ser adicionado, que substituirá os dados existentes, consistindo em 0s ou 1s consecutivos, com intervalo de valores de 0 a 2^32.

    Nota

    O comprimento total do deslocamento especificado e do bitarray adicionado não pode exceder 2^32; caso contrário, a operação falhará.

Saída

  • Se a operação for bem-sucedida, o número de bits na chave definidos como 1 será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Execute previamente o comando TR.SETBITS foo 0.

Comando de exemplo:

TR.APPENDBITARRAY foo 1 1101

Saída de exemplo:

(integer) 4

Neste caso, a chave TairRoaring foo é "101101".

TR.FLIPRANGE

Item

Descrição

Sintaxe

TR.FLIPRANGE key start end

Complexidade de tempo

O(C)

Descrição do comando

Inverte os valores dos bits dentro do intervalo especificado em uma chave TairRoaring de 0 para 1 ou de 1 para 0. O intervalo é fechado. Se a chave não existir, ela será criada como um conjunto de dados vazio e a operação será executada na chave.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • start: o deslocamento inicial (inclusivo), com valores variando de 0 a 2^32.

  • end: o deslocamento final (inclusivo), com valores variando de 0 a 2^32.

Saída

  • Em caso de sucesso na operação, o sistema retorna o número de bits na chave que foram definidos como 1.

  • Se a chave não existir, ela será criada como um conjunto de dados vazio e a operação será realizada. Após o êxito, o número de bits definidos como 1 na chave é retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Execute previamente o comando TR.SETBITS foo 0 2 3 5.

Comando de exemplo:

TR.FLIPRANGE foo 0 5

Saída de exemplo:

(integer) 2

Neste caso, a chave TairRoaring foo é "01001".

TR.APPENDINTARRAY

Item

Descrição

Sintaxe

TR.APPENDINTARRAY key value [value1 value2 ... valueN]

Complexidade de tempo

O(C)

Descrição do comando

Define o valor do bit especificado em uma chave TairRoaring como 1. É possível especificar vários valores de bits.

Nota

No TairRoaring V2, recomendamos o uso de TR.SETBITS em vez deste comando.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • value: o deslocamento inteiro do bit que você deseja processar. Valores válidos: 0 a 4294967296.

Saída

  • Se a operação for bem-sucedida, OK será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.APPENDINTARRAY foo 9 10

Saída de exemplo:

OK

TR.SETINTARRAY

Item

Descrição

Sintaxe

TR.SETINTARRAY key value [value1 value2 ... valueN]

Complexidade de tempo

O(C)

Descrição do comando

Cria uma chave TairRoaring com base no array de inteiros especificado. Se a chave já existir, este comando substituirá os dados nela contidos.

Nota

No TairRoaring V2, recomendamos o uso de TR.SETBITS em vez deste comando.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • value: um inteiro que especifica a posição do bit a ser definida.

Saída

  • Se a operação for bem-sucedida, OK será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.SETINTARRAY foo 2 4 5 6

Saída de exemplo:

OK

TR.SETBITARRAY

Item

Descrição

Sintaxe

TR.SETBITARRAY key value

Complexidade de tempo

O(C)

Descrição do comando

Cria uma chave TairRoaring com base na string de array de bits especificada. A string de array de bits consiste em 0 e 1. Se a chave já existir, este comando substituirá os dados nela contidos.

Nota

No TairRoaring V2, recomendamos o uso de TR.APPENDBITARRAY em vez deste comando.

Parâmetro

  • key: a chave que você deseja gerenciar executando este comando.

  • value: Uma string de 0s e 1s que representa o array de bits.

Saída

  • Se a operação for bem-sucedida: OK será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

tr.setbitarray foo 10101001

Saída de exemplo:

OK 

TR.BITOP

Item

Descrição

Sintaxe

TR.BITOP destkey operation key [key1 key2 ... keyN]

Complexidade de tempo

O(C * M)

Descrição do comando

Executa operações de conjunto em Roaring Bitmaps e armazena o resultado em destkey. O comando suporta as operações AND, OR, XOR, NOT e DIFF.

Nota

Este comando não está disponível para chaves que residem em slots diferentes em instâncias cluster.

Opções

  • destkey: a chave de destino que armazena o resultado (estrutura de dados TairRoaring).

  • operation: o tipo de operação de conjunto. Valores válidos: AND (E lógico), OR (OU lógico), XOR (OU exclusivo), NOT (NÃO lógico) e DIFF (diferença).

    Nota
    • Operações NOT só podem ser executadas em uma única chave.

    • Operações DIFF só podem ser executadas em duas chaves. Observe a ordem das chaves. Por exemplo, o comando TR.BITOP result DIFF key1 key2 subtrai key2 de key1 (key1 - key2).

  • key: A chave da estrutura de dados TairRoaring. É possível especificar várias chaves.

Saída

  • Se a operação for bem-sucedida, retorna o número inteiro de bits no resultado definidos como 1.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.BITOP result OR foo bar

Saída de exemplo:

(integer) 6

TR.BITOPCARD

Item

Descrição

Sintaxe

TR.BITOPCARD operation key [key1 key2 ... keyN]

Complexidade de tempo

O(C * M)

Descrição do comando

Executa uma operação bit a bit em várias chaves TairRoaring. As operações bit a bit AND, OR, XOR, NOT e DIFF são suportadas.

Nota

Este comando não está disponível para chaves que residem em slots diferentes em instâncias cluster.

Opções

  • operation: o tipo de operação de conjunto. Valores válidos: AND, OR, XOR, NOT e DIFF.

    Nota
    • Operações NOT só podem ser executadas em uma única chave.

    • Operações DIFF calculam a diferença entre apenas duas chaves. Atenção à ordem das operações para calcular a diferença. Por exemplo, o comando TR.BITOP result DIFF key1 key2 calcula a diferença de key1 em relação a key2 (key1 - key2).

  • key: o nome da chave (estrutura de dados TairRoaring). É possível especificar várias chaves.

Saída

  • Se a operação for bem-sucedida, retorna o número inteiro de bits no resultado definidos como 1.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.BITOPCARD NOT foo

Saída de exemplo:

(integer) 2

TR.OPTIMIZE

Item

Descrição

Sintaxe

TR.OPTIMIZE key

Complexidade de tempo

O(M)

Descrição do comando

Otimiza o armazenamento de uma chave TairRoaring. Execute este comando se a chave for relativamente grande e utilizada principalmente para operações de leitura após sua criação.

Opções

  • Key: O nome da chave (estrutura de dados TairRoaring).

Saída

  • Se a operação for bem-sucedida, OK será retornado.

  • Se a chave não existir, nil será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.OPTIMIZE foo

Saída de exemplo:

OK

TR.GETBIT

Item

Descrição

Sintaxe

TR.GETBIT key offset

Complexidade de tempo

O(1)

Descrição do comando

Recupera o valor do bit especificado de uma chave TairRoaring.

Opções

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • offset: o deslocamento que você deseja consultar.

Saída

  • Se a operação for bem-sucedida, um valor de 0 ou 1 será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.GETBIT foo 0

Saída de exemplo:

(integer) 1

TR.GETBITS

Item

Descrição

Sintaxe

TR.GETBITS key offset [offset1 offset2 ... offsetN]

Complexidade de tempo

O(C)

Descrição do comando

Recupera o valor dos bits especificados de uma chave TairRoaring. É possível especificar vários bits para recuperação de valor.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • offset: o deslocamento que você deseja consultar.

Saída

  • Se a operação for bem-sucedida, o valor do bit será retornado.

  • Se a chave não existir, um array vazio será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.GETBITS foo 3 4 6 8

Saída de exemplo:

1) (integer) 1
2) (integer) 1
3) (integer) 1
4) (integer) 0

TR.BITCOUNT

Item

Descrição

Sintaxe

TR.BITCOUNT key [start end]

Complexidade de tempo

O(M)

Descrição do comando

Conta o número de bits com valor 1 dentro do intervalo especificado em uma chave TairRoaring. O intervalo é fechado.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • start: o deslocamento inicial (inclusivo), com valores variando de 0 a 2^32.

  • end: o deslocamento final (inclusivo), com valores variando de 0 a 2^32.

Saída

  • Se a operação for bem-sucedida, retorna o número inteiro de bits na chave definidos como 1.

  • Se a chave não existir, um valor de 0 será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.BITCOUNT foo 4 9

Saída de exemplo:

(integer) 3

TR.BITPOS

Item

Descrição

Sintaxe

TR.BITPOS <key> <value> [count]

Complexidade de tempo

O(C)

Descrição do comando

Recupera o deslocamento do bit que possui um número ordinal igual a count. Um bit pode ter valor 1 ou 0. O parâmetro count é opcional e tem valor padrão de 1. O valor 1 indica o primeiro bit recuperado usando a abordagem de contagem da esquerda para a direita.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • value: o valor do bit cujo deslocamento você deseja recuperar. O valor do bit pode ser 0 ou 1.

  • count: o número ordinal do bit. Um número negativo indica que a abordagem de contagem da direita para a esquerda é usada.

Saída

  • Se a operação for bem-sucedida, o deslocamento do bit com valor 1 ou 0 será retornado.

  • Se a chave não existir, um valor de -1 será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.BITPOS foo 1 -1

Saída de exemplo:

(integer) 6

TR.SCAN

Item

Descrição

Sintaxe

TR.SCAN key start_offset [COUNT count]

Complexidade de tempo

O(C)

Descrição do comando

Varre todos os bits localizados após um bit especificado em uma chave TairRoaring e retorna os deslocamentos correspondentes a uma contagem dos bits varridos que possuem valor 1. O cursor retornado é o deslocamento correspondente à chave.

Nota

Este comando pode ou não varrer e retornar elementos adicionados ou excluídos.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • start_offset: o deslocamento do bit. O bit que corresponde a este deslocamento é varrido.

  • COUNT: o número de bits que você deseja consultar. Valor padrão: 10.

Saída

  • Se a operação for bem-sucedida, um array contendo dois elementos será retornado:

    • O primeiro elemento é o próximo valor de start_offset. Se a chave for totalmente varrida, um valor de 0 será retornado.

    • O segundo elemento: o deslocamento alvo da consulta atual.

    Nota

    Se a chave não existir, um array composto por 0 e elementos vazios será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.SCAN foo 0 COUNT 2

Saída de exemplo:

1) (integer) 3
2) 1) (integer) 0
   2) (integer) 2

TR.RANGE

Categoria

Descrição

Sintaxe

TR.RANGE key start end

Complexidade de tempo

O(C)

Descrição do comando

Retorna os deslocamentos dos bits com valor 1 dentro do intervalo especificado em uma chave TairRoaring. O intervalo é fechado.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • start: o valor inicial do intervalo (inclusivo).

  • end: o valor final do intervalo (inclusivo).

Saída

  • Se a operação for bem-sucedida, os deslocamentos dos bits com valor 1 serão retornados.

  • Se a chave não existir, um array vazio será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Execute o comando TR.SETBITS foo 0 2 3 5 antecipadamente.

Comando de exemplo:

TR.RANGE foo 0 5

Saída de exemplo:

1) (integer) 0
2) (integer) 2
3) (integer) 3
4) (integer) 5

TR.RANGEBITARRAY

Item

Descrição

Sintaxe

TR.RANGEBITARRAY key start end

Complexidade de tempo

O(C)

Descrição do comando

Recupera uma string composta por valores de bit 0 e 1 dentro do intervalo especificado em uma chave TairRoaring. O intervalo é fechado.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • start: o valor inicial do intervalo (inclusivo).

  • end: o valor final do intervalo (inclusivo).

Saída

  • Se a operação for bem-sucedida, os deslocamentos dos bits com valor 1 serão retornados.

  • Se a chave não existir, nil será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Execute o comando TR.SETBITS foo 0 2 3 5 antecipadamente.

Comando de exemplo:

TR.RANGEBITARRAY foo 0 5

Saída de exemplo:

"101101"

TR.MIN

Item

Descrição

Sintaxe

TR.MIN key

Complexidade de tempo

O(1)

Descrição do comando

Recupera o deslocamento do primeiro bit com valor 1 em uma chave TairRoaring. Se nenhum bit tiver valor 1, um valor de -1 será retornado.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

Saída

  • Se a operação for bem-sucedida:

    • Se existirem bits com valor 1 na chave, o deslocamento inteiro do primeiro bit com valor 1 será retornado.

    • Se não existirem bits com valor 1 na chave ou se a chave não existir, um valor de -1 será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.MIN foo

Saída de exemplo:

4

TR.MAX

Item

Descrição

Sintaxe

TR.MAX key

Complexidade de tempo

O(1)

Descrição do comando

Recupera o deslocamento do último bit com valor 1 em um Roaring Bitmap. Se nenhum bit tiver valor 1, -1 será retornado.

Opções

  • Key: O nome da chave (estrutura de dados TairRoaring).

Saída

  • Se a operação for bem-sucedida:

    • Se existirem bits com valor 1 na chave, o deslocamento inteiro do último bit com valor 1 será retornado.

    • Se não existirem bits com valor 1 na chave ou se a chave não existir, um valor de -1 será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.MAX foo

Saída de exemplo:

6

TR.STAT

Item

Descrição

Sintaxe

TR.STAT key [JSON]

Complexidade de tempo

O(M)

Descrição do comando

Retorna as informações estatísticas da chave TairRoaring especificada. Essas informações incluem o número de containers e o uso de memória.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • JSON: se este parâmetro for especificado, as informações estatísticas serão retornadas no formato JSON.

Saída

  • Em caso de sucesso na operação, a seguinte saída é retornada:

    "{\"cardinality\":3,                    # Total number of elements in the key
    \"number_of_containers\":1,             # Total number of containers in the key
    \"max_value\":6,                        # Maximum element value in the key
    \"min_value\":3,                        # Minimum element value in the key
    \"sum_value\":13,
    \"array_container\":{                   # Number of array containers in the key
        \"number_of_containers\":1,
        \"container_cardinality\":3,
        \"container_allocated_bytes\":6},
    \"bitset_container\":{                  # Number of bitset containers in the key
        \"number_of_containers\":0,
        \"container_cardinality\":0,
        \"container_allocated_bytes\":0},
    \"run_container\":{                     # Number of run containers in the key
        \"number_of_containers\":0,
        \"container_cardinality\":0,
        \"container_allocated_bytes\":0}}"
    
                                            
  • Se a chave não existir, nil será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.STAT foo JSON

Saída de exemplo:

"{\"cardinality\":4,\"number_of_containers\":1,\"max_value\":5,\"min_value\":0,\"sum_value\":10,\"array_container\":{\"number_of_containers\":1,\"container_cardinality\":4,\"container_allocated_bytes\":8},\"bitset_container\":{\"number_of_containers\":0,\"container_cardinality\":0,\"container_allocated_bytes\":0},\"run_container\":{\"number_of_containers\":0,\"container_cardinality\":0,\"container_allocated_bytes\":0}}"

TR.JACCARD

Item

Descrição

Sintaxe

TR.JACCARD key1 key2

Complexidade de tempo

O(M)

Descrição do comando

Obtém o coeficiente de similaridade de Jaccard de duas chaves TairRoaring. Quanto maior o coeficiente, maior a similaridade.

Nota

Este comando não está disponível para chaves que residem em slots diferentes em instâncias de cluster.

Parâmetro

  • Key: O nome da chave (estrutura de dados TairRoaring).

Saída

  • Se a operação for bem-sucedida, um coeficiente de similaridade de Jaccard do tipo double será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Comando de exemplo:

TR.JACCARD foo1 foo2

Saída de exemplo:

"0.20000000000000001"

TR.CONTAINS

Categoria

Descrição

Sintaxe

TR.CONTAINS key1 key2

Complexidade de tempo

O(M)

Descrição do comando

Verifica se key2 contém key1. Em caso afirmativo, key1 é um subconjunto de key2 e o valor 1 é retornado. Caso contrário, key1 não é um subconjunto de key2 e o valor 0 é retornado.

Nota

Este comando não está disponível para chaves que residem em slots diferentes em instâncias de cluster.

Opções

  • Key: O nome da chave (estrutura de dados TairRoaring).

Saída

  • Se a operação for bem-sucedida:

    • O valor 1 será retornado se key2 contiver key1.

    • O valor 0 será retornado se key2 não contiver key1.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Execute previamente os comandos TR.SETBITS fooM 1 2 3 10 e TR.SETBITS foom 1 2.

Comando de exemplo:

TR.CONTAINS foom fooM

Saída de exemplo:

(integer) 1

TR.RANK

Item

Descrição

Sintaxe

TR.RANK key offset

Complexidade de tempo

O(M)

Descrição do comando

Obtém o número de bits com valor 1 no intervalo do primeiro bit até o bit especificado. O intervalo é fechado.

Opções

  • Key: O nome da chave (estrutura de dados TairRoaring).

  • offset: o deslocamento do bit especificado. O valor deve ser um número inteiro.

Saída

  • Se a operação for bem-sucedida, o número de bits com valor 1 será retornado.

  • Caso contrário, uma mensagem de erro será retornada.

Exemplo

Execute previamente o comando TR.SETBITS fooM 1 2 3 10.

Comando de exemplo:

TR.RANK fooM 10

Saída de exemplo:

(integer) 4

Mensagens de erro

Mensagem de erro

Descrição

WRONGTYPE Operation against a key holding the wrong kind of value

Tipo de objeto incorreto: A chave não é um objeto TairRoaring.

ERR bad arguments, must be unsigned 32-bit integer

Tipo de parâmetro incorreto: Os valores dos parâmetros não podem ser convertidos em inteiros de 32 bits.

ERR invalid arguments, maybe out of range or illegal

Parâmetros inválidos:

  • O deslocamento não é um inteiro de 32 bits.

  • Os deslocamentos inicial e final são inválidos.

  • O valor do parâmetro excede o número máximo de elementos permitidos para uma chave TairRoaring.

ERR key already exist

A chave TairRoaring já existe e seus dados não podem ser sobrescritos.

Nota

Este erro foi corrigido no TairRoaring V2.2.

ERR key not found

O objeto Roaring Bitmap não existe. Esta operação não é suportada.

Nota

Este erro foi corrigido no TairRoaring V2.2.