Todos los productos
Search
Centro de documentos

Tair (Redis® OSS-Compatible):Roaring

Última actualización: Sep 03, 2026

TairRoaring es una estructura de datos basada en Tair para bitmaps de tipo Roaring. Este tema describe TairRoaring y sus comandos compatibles.

Introducción a TairRoaring

Un bitmap (también conocido como bitset) es una estructura de datos común que utiliza pequeñas cantidades de almacenamiento para optimizar consultas sobre grandes volúmenes de datos. Los bitmaps ahorran más espacio que las implementaciones basadas en hash, pero no son adecuados para almacenar datos dispersos. Para resolver este problema se desarrollaron los bitmaps comprimidos. Los bitmaps de tipo Roaring son un estándar reconocido en la industria por ser más eficientes y equilibrados que otros bitmaps comprimidos.

TairRoaring optimiza los bitmaps de tipo Roaring de las siguientes maneras:

  • TairRoaring logra un equilibrio entre rendimiento y complejidad espacial en diversos escenarios mediante el uso de índices de dos niveles y contenedores dinámicos.

  • TairRoaring emplea técnicas de optimización como instrucción única, datos múltiples (SIMD), vectorización y algoritmos popcount para mejorar la eficiencia de cálculo y ofrecer una complejidad temporal y espacial eficiente.

  • TairRoaring aprovecha el potente rendimiento de cómputo y la alta estabilidad que proporciona Tair para admitir escenarios empresariales.

Escenarios típicos

TairRoaring es adecuado para industrias como transmisiones en vivo, música y comercio electrónico. Puede utilizar TairRoaring para agregar etiquetas multidimensionales a los usuarios en escenarios como recomendaciones personalizadas y marketing de precisión.

Notas de versión

Importante

Cambios en TairRoaring V2:

  • TR.RANGEINTARRAY: El comando TR.RANGEINTARRAY de TairRoaring V1 cambió a TR.RANGE en TairRoaring V2.

  • TR.SETRANGE: La salida del comando en la versión V1 es OK, mientras que en la V2 es la cantidad de bits establecidos en 1. Los demás aspectos del comando permanecen sin cambios.

  1. El 13 de septiembre de 2021 se lanzó TairRoaring V1 para instancias que ejecutan la versión menor 1.7.20 o posterior.

  2. El 11 de marzo de 2022 se lanzó TairRoaring V2 para instancias que ejecutan la versión menor 1.7.27 o posterior.

    TairRoaring V2 optimiza la implementación de algunos comandos y mejora su rendimiento. Esta versión incluye nueve comandos nuevos, entre ellos TR.SETBITS y TR.CLEARBITS; actualiza tres comandos, dos de los cuales siguen siendo compatibles con TairRoaring V1; y cambia el nombre de un comando.

  3. El 20 de abril de 2022 se lanzó TairRoaring V2.2 para instancias que ejecutan la versión menor 1.8.1 o posterior.

    Esta versión agrega los comandos TR.JACCARD, TR.CONTAINS y TR.RANK, y actualiza los errores que devuelven algunos comandos cuando una clave no existe (se eliminó el error ERR key not found).

Mejores prácticas

Audience segmentation by using TairRoaring

Requisitos

La instancia debe ser una instancia memory-optimized de Tair. Si su instancia optimizada para memoria es compatible con Redis 5.0, la versión menor debe ser 1.7.7 o posterior.

Nota

La versión menor más reciente ofrece más funciones y mayor estabilidad. Se recomienda actualizar la instancia a la última versión menor. Para obtener más información, consulte Update the minor version of an instance. Si su instancia es una instancia de clúster o de división de lectura/escritura, se recomienda actualizar los nodos proxy de la instancia a la última versión menor para garantizar que todos los comandos se ejecuten correctamente.

Notas de uso

Las operaciones se aplican a datos de TairRoaring en una instancia de Tair.

Lista de comandos

Tipo

Comando

Sintaxis

Descripción

Cambio de versión

Operación de escritura

TR.SETBIT

TR.SETBIT key offset value

Establece el bit especificado en una clave de TairRoaring con un valor de 1 o 0 y devuelve el valor original del bit. El desplazamiento comienza en 0.

- (N/A)

TR.SETBITS

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

Establece en 1 el valor del bit especificado en una clave de TairRoaring. Puede especificar varios valores de bits.

Agregado en V2

TR.CLEARBITS

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

Establece en 0 el valor del bit especificado en una clave de TairRoaring. Si el bit especificado ya tiene un valor de 0, no se realiza la operación. Puede especificar varios valores de bits.

Agregado en V2

TR.SETRANGE

TR.SETRANGE key start end

Establece en 1 los bits dentro del rango especificado en una clave de TairRoaring. El rango es un intervalo cerrado.

Actualizado en V2. Tras la actualización del comando en V2, la salida cambió a la cantidad de bits establecidos en 1.

TR.APPENDBITARRAY

TR.APPENDBITARRAY key offset bitarray

Inserta una matriz de bits en la posición posterior al bit especificado en un Roaring Bitmap y sobrescribe los datos originales. La matriz de bits consta de ceros y unos.

Agregado en V2

TR.FLIPRANGE

TR.FLIPRANGE key start end

Invierte los valores de los bits dentro del rango especificado en una clave de TairRoaring, de 0 a 1 o de 1 a 0. El rango es un intervalo cerrado. Si la clave no existe, se crea como un conjunto de datos vacío y se ejecuta la operación sobre ella.

Agregado en V2

TR.APPENDINTARRAY

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

Establece en 1 el valor del bit especificado en una clave de TairRoaring. Puede especificar varios valores de bits.

Nota

En TairRoaring V2, se recomienda usar TR.SETBITS en lugar de este comando.

-

TR.SETINTARRAY

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

Crea una clave de TairRoaring basada en la matriz de enteros especificada. Si la clave ya existe, este comando sobrescribe los datos contenidos en ella.

Nota

En TairRoaring V2, se recomienda usar TR.SETBITS en lugar de este comando.

-

TR.SETBITARRAY

TR.SETBITARRAY key value

Crea una clave de TairRoaring basada en la cadena de matriz de bits especificada. La cadena de matriz de bits consta de ceros y unos. Si la clave ya existe, este comando sobrescribe los datos contenidos en ella.

Nota

En TairRoaring V2, se recomienda usar TR.APPENDBITARRAY en lugar de este comando.

-

TR.BITOP

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

Realiza operaciones de conjuntos sobre Roaring Bitmaps y almacena el resultado en destkey. El comando admite las operaciones AND, OR, XOR, NOT y DIFF.

Nota

Este comando no está disponible para claves que residen en distintos slots en instancias de clúster.

-

TR.BITOPCARD

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

Realiza una operación bit a bit sobre varias claves de TairRoaring. Se admiten las operaciones bit a bit AND, OR, XOR, NOT y DIFF.

Nota

Este comando no está disponible para claves que residen en distintos slots en instancias de clúster.

Agregado en V2

TR.OPTIMIZE

TR.OPTIMIZE key

Optimiza el almacenamiento de una clave de TairRoaring. Si la clave es relativamente grande y se usa principalmente para operaciones de lectura después de su creación, puede ejecutar este comando.

-

Operación de lectura

TR.GETBIT

TR.GETBIT key offset

Recupera el valor del bit especificado de una clave de TairRoaring.

-

TR.GETBITS

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

Recupera el valor del bit especificado de una clave de TairRoaring. Puede especificar varios bits para recuperar sus valores.

Agregado en V2

TR.BITCOUNT

TR.BITCOUNT key [start end]

Cuenta la cantidad de bits con valor 1 dentro del rango especificado en una clave de TairRoaring. El rango es un intervalo cerrado.

Actualizado en V2 con compatibilidad hacia adelante.

TR.BITPOS

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

Recupera el desplazamiento del bit cuyo número ordinal es count. Un bit puede tener un valor de 1 o 0. El parámetro count es opcional y tiene un valor predeterminado de 1. Un valor de 1 indica el primer bit recuperado mediante el método de conteo de izquierda a derecha.

Actualizado en V2 con compatibilidad hacia adelante.

TR.SCAN

TR.SCAN key start_offset [COUNT count]

Explora todos los bits ubicados después de un bit especificado en una clave de TairRoaring y devuelve los desplazamientos correspondientes a un recuento de los bits explorados que tienen un valor de 1. El cursor devuelto es el desplazamiento correspondiente a la clave.

Nota

Este comando podría explorar y devolver elementos agregados o eliminados, o no hacerlo.

Agregado en V2

TR.RANGE

TR.RANGE key start end

Devuelve los desplazamientos de los bits con valor 1 dentro del rango especificado en una clave de TairRoaring. El rango es un intervalo cerrado.

Renombrado como TR.RANGE en V2; anteriormente TR.RANGEINTARRAY en V1.

TR.RANGEBITARRAY

TR.RANGEBITARRAY key start end

Recupera una cadena compuesta por valores de bits 0 y 1 dentro del rango especificado en una clave de TairRoaring. El rango es un intervalo cerrado.

Agregado en V2

TR.MIN

TR.MIN key

Recupera el desplazamiento del primer bit con valor 1 en una clave de TairRoaring. Si ningún bit tiene valor 1, se devuelve -1.

-

TR.MAX

TR.MAX key

Recupera el desplazamiento del último bit con valor 1 en un Roaring Bitmap. Si ningún bit tiene valor 1, se devuelve -1.

-

TR.STAT

TR.STAT key [JSON]

Devuelve la información estadística de la clave de TairRoaring especificada. La información incluye la cantidad de contenedores y el uso de memoria.

Agregado en V2

TR.JACCARD

TR.JACCARD key1 key2

Recupera el coeficiente de similitud de Jaccard de dos claves de TairRoaring. Cuanto mayor sea el coeficiente, mayor será la similitud.

Nota

Este comando no está disponible para claves que residen en distintos slots en instancias de clúster.

Agregado en V2.2

TR.CONTAINS

TR.CONTAINS key1 key2

Comprueba si key2 contiene a key1. En caso afirmativo, key1 es un subconjunto de key2 y se devuelve 1. De lo contrario, key1 no es un subconjunto de key2 y se devuelve 0.

Nota

Este comando no está disponible para claves que residen en distintos slots en instancias de clúster.

Agregado en V2.2

TR.RANK

TR.RANK key offset

Recupera la cantidad de bits con valor 1 dentro del rango desde el primer bit hasta el bit especificado. El rango es un intervalo cerrado.

Agregado en V2.2

Operación de propósito general

DEL

DEL key [key ...]

Elimina una o más claves de TairRoaring.

-

Nota
  • La siguiente sección describe la sintaxis de los comandos:

    • Uppercase keyword: indica la palabra clave del comando.

    • Italic text: indica variables.

    • [options]: indica que los parámetros entre corchetes son opcionales. Los parámetros que no están entre corchetes deben especificarse obligatoriamente.

    • A|B: indica que los parámetros separados por barras verticales (|) son mutuamente excluyentes. Solo se puede especificar uno de ellos.

    • ...: indica que el parámetro anterior a este símbolo se puede especificar de forma repetida.

  • En este tema, las letras utilizadas en las expresiones de complejidad temporal tienen significados específicos:

    • C indica argc o el rango de parámetros.

    • M indica la cantidad de bits establecidos en 1 en una estructura de datos, como la cantidad de nodos en una lista o la cantidad de campos en un hash.

TR.SETBIT

Categoría

Descripción

Sintaxis

TR.SETBIT key offset value

Complejidad temporal

O(1)

Descripción del comando

Establece el bit especificado en una clave de TairRoaring con un valor de 1 o 0 y devuelve el valor original del bit. El desplazamiento comienza en 0.

Parámetro

  • Key: Nombre de la clave (estructura de datos TairRoaring).

  • offset: Entero que representa el desplazamiento del bit que se va a establecer, con un rango de valores de 0 a 2^32.

  • value: Valor del bit que se va a establecer, que puede ser 1 o 0.

Salida

  • Si la operación se realiza correctamente, se devuelve un valor de bit de 0 o 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.SETBIT foo 0 1

Salida de ejemplo:

(integer) 0

TR.SETBITS

Elemento

Descripción

Sintaxis

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

Complejidad temporal

O(C)

Descripción del comando

Establece en 1 el valor del bit especificado en una clave de TairRoaring. Puede especificar varios valores de bits.

Opciones

  • Key: Nombre de la clave (estructura de datos TairRoaring).

  • offset: Entero que representa el desplazamiento del bit que se va a establecer, con un rango de valores de 0 a 2^32.

Salida

  • Si la operación se realiza correctamente, se devuelve la cantidad de bits en la clave que están establecidos en 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.SETBITS foo 9 10

Salida de ejemplo:

(integer) 5

TR.CLEARBITS

Elemento

Descripción

Sintaxis

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

Complejidad temporal

O(C)

Descripción del comando

Establece en 0 el valor del bit especificado en una clave de TairRoaring. Si el bit especificado ya tiene un valor de 0, no se realiza la operación. Puede especificar varios valores de bits.

Parámetro

  • Key: Nombre de la clave (estructura de datos TairRoaring).

  • offset: Entero que representa el desplazamiento del bit que se va a establecer, con un rango de valores de 0 a 2^32.

Salida

  • Si la operación se realiza correctamente, se devuelve la cantidad de bits en la clave que se han establecido en 0.

  • Si la clave no existe, se devuelve 0.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.CLEARBITS foo 9 10

Salida de ejemplo:

(integer) 2

TR.SETRANGE

Elemento

Descripción

Sintaxis

TR.SETRANGE key start end

Complejidad temporal

O(C)

Descripción del comando

Establece en 1 los bits dentro del rango especificado en una clave de TairRoaring. El rango es un intervalo cerrado.

Por ejemplo, si ejecuta el comando TR.SETRANGE foo 1 3, el sistema crea la clave foo con el valor 0111.

Opciones

  • Key: Nombre de la clave (estructura de datos TairRoaring).

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

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

Salida

  • Si la operación se realiza correctamente, se devuelve la cantidad de bits en la clave que están establecidos en 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.SETRANGE foo 1 3

Salida de ejemplo:

(integer) 3

TR.APPENDBITARRAY

Elemento

Descripción

Sintaxis

TR.APPENDBITARRAY key offset bitarray

Complejidad temporal

O(C)

Descripción del comando

Inserta un arreglo de bits en una posición posterior al bit especificado dentro de un Roaring Bitmap y sobrescribe los datos originales. El arreglo de bits se compone de ceros y unos.

Parámetro

  • Key: Nombre de la clave (estructura de datos TairRoaring).

  • offset: Desplazamiento inicial especificado (sin incluir este valor), con un rango de valores de -1 a 2^32.

  • bitarray: Arreglo de bits que se va a agregar. Este arreglo sobrescribirá los datos existentes y está formado por ceros o unos consecutivos, con un rango de valores de 0 a 2^32.

    Nota

    La longitud total del desplazamiento especificado más el arreglo de bits agregado no puede exceder 2^32; de lo contrario, la operación fallará.

Salida

  • Si la operación es exitosa, se devuelve la cantidad de bits en la clave que están establecidos en 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Ejecute previamente el comando TR.SETBITS foo 0.

Comando de ejemplo:

TR.APPENDBITARRAY foo 1 1101

Salida de ejemplo:

(integer) 4

En este caso, la clave TairRoaring foo es "101101".

TR.FLIPRANGE

Elemento

Descripción

Sintaxis

TR.FLIPRANGE key start end

Complejidad temporal

O(C)

Descripción del comando

Invierte los valores de los bits dentro del rango especificado en una clave TairRoaring, cambiando de 0 a 1 o de 1 a 0. El rango es un intervalo cerrado. Si la clave no existe, se crea como un conjunto de datos vacío y la operación se ejecuta sobre dicha clave.

Parámetro

  • Key: Nombre de la clave (estructura de datos TairRoaring).

  • start: Desplazamiento inicial (inclusivo), con valores en el rango de 0 a 2^32.

  • end: Desplazamiento final (inclusivo), con valores en el rango de 0 a 2^32.

Salida

  • Si la operación es exitosa, se devuelve la cantidad de bits en la clave que se han establecido en 1.

  • Si la clave no existe, se crea como un conjunto de datos vacío y la operación se ejecuta sobre ella. Si la operación es exitosa, se devuelve la cantidad de bits en la clave que se han establecido en 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Ejecute previamente el comando TR.SETBITS foo 0 2 3 5.

Comando de ejemplo:

TR.FLIPRANGE foo 0 5

Salida de ejemplo:

(integer) 2

En este caso, la clave TairRoaring foo es "01001".

TR.APPENDINTARRAY

Elemento

Descripción

Sintaxis

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

Complejidad temporal

O(C)

Descripción del comando

Establece en 1 el valor del bit especificado en una clave TairRoaring. Es posible especificar varios valores de bits.

Nota

En TairRoaring V2, se recomienda utilizar TR.SETBITS en lugar de este comando.

Parámetro

  • Key: Nombre de la clave (estructura de datos TairRoaring).

  • value: Desplazamiento entero del bit que desea procesar. Valores válidos: de 0 a 4294967296.

Salida

  • Si la operación es exitosa, se devuelve OK.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.APPENDINTARRAY foo 9 10

Salida de ejemplo:

OK

TR.SETINTARRAY

Elemento

Descripción

Sintaxis

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

Complejidad temporal

O(C)

Descripción del comando

Crea una clave TairRoaring basada en el arreglo de enteros especificado. Si la clave ya existe, este comando sobrescribe los datos contenidos en ella.

Nota

En TairRoaring V2, se recomienda utilizar TR.SETBITS en lugar de este comando.

Parámetro

  • Key: Nombre de la clave (estructura de datos TairRoaring).

  • value: Entero que especifica la posición del bit que se va a establecer.

Salida

  • Si la operación es exitosa, se devuelve OK.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.SETINTARRAY foo 2 4 5 6

Salida de ejemplo:

OK

TR.SETBITARRAY

Elemento

Descripción

Sintaxis

TR.SETBITARRAY key value

Complejidad temporal

O(C)

Descripción del comando

Crea una clave TairRoaring basada en la cadena de arreglo de bits especificada. Dicha cadena se compone de ceros y unos. Si la clave ya existe, este comando sobrescribe los datos contenidos en ella.

Nota

En TairRoaring V2, se recomienda utilizar TR.APPENDBITARRAY en lugar de este comando.

Parámetro

  • key: Clave que desea gestionar mediante la ejecución de este comando.

  • value: Cadena compuesta por ceros y unos que representa el arreglo de bits.

Salida

  • Si la operación es exitosa, se devuelve OK.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

tr.setbitarray foo 10101001

Salida de ejemplo:

OK 

TR.BITOP

Elemento

Descripción

Sintaxis

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

Complejidad temporal

O(C * M)

Descripción del comando

Ejecuta operaciones de conjuntos sobre Roaring Bitmaps y almacena el resultado en destkey. El comando admite las operaciones AND, OR, XOR, NOT y DIFF.

Nota

Este comando no está disponible para claves que se encuentran distribuidas en varios slots de instancias de clúster.

Opciones

  • destkey: la clave de destino que almacena el resultado (estructura de datos TairRoaring).

  • operation: el tipo de operación de conjunto. Valores válidos: AND (AND lógico), OR (OR lógico), XOR (OR exclusivo), NOT (NOT lógico) y DIFF (diferencia).

    Nota
    • Las operaciones NOT solo pueden ejecutarse sobre una única clave.

    • Las operaciones DIFF solo pueden ejecutarse sobre dos claves. Tenga en cuenta el orden de las claves. Por ejemplo, el comando TR.BITOP result DIFF key1 key2 resta key2 de key1 (key1 - key2).

  • key: la clave de la estructura de datos TairRoaring. Puede especificar varias claves.

Salida

  • Si la operación se realiza correctamente, se devuelve el número entero de bits del resultado establecidos en 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.BITOP result OR foo bar

Salida de ejemplo:

(integer) 6

TR.BITOPCARD

Elemento

Descripción

Sintaxis

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

Complejidad temporal

O(C * M)

Descripción del comando

Ejecuta una operación bit a bit sobre varias claves TairRoaring. Se admiten las operaciones bit a bit AND, OR, XOR, NOT y DIFF.

Nota

Este comando no está disponible para claves que se encuentran distribuidas en varios slots de instancias de clúster.

Opciones

  • operation: el tipo de operación de conjunto. Valores válidos: AND, OR, XOR, NOT y DIFF.

    Nota
    • Las operaciones NOT solo pueden ejecutarse sobre una única clave.

    • Las operaciones DIFF solo calculan la diferencia entre dos claves. Preste atención al orden de los operandos para calcular la diferencia. Por ejemplo, el comando TR.BITOP result DIFF key1 key2 calcula la diferencia de key1 respecto a key2 (key1 - key2).

  • key: el nombre de la clave (estructura de datos TairRoaring). Puede especificar varias claves.

Salida

  • Si la operación se realiza correctamente, se devuelve el número entero de bits del resultado establecidos en 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.BITOPCARD NOT foo

Salida de ejemplo:

(integer) 2

TR.OPTIMIZE

Elemento

Descripción

Sintaxis

TR.OPTIMIZE key

Complejidad temporal

O(M)

Descripción del comando

Optimiza el almacenamiento de una clave TairRoaring. Ejecute este comando si la clave es relativamente grande y se utiliza principalmente para operaciones de lectura después de su creación.

Opciones

  • Key: el nombre de la clave (estructura de datos TairRoaring).

Salida

  • Si la operación se realiza correctamente, se devuelve OK.

  • Si la clave no existe, se devuelve nil.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.OPTIMIZE foo

Salida de ejemplo:

OK

TR.GETBIT

Elemento

Descripción

Sintaxis

TR.GETBIT key offset

Complejidad temporal

O(1)

Descripción del comando

Recupera el valor del bit especificado de una clave TairRoaring.

Opciones

  • Key: el nombre de la clave (estructura de datos TairRoaring).

  • offset: el desplazamiento que desea consultar.

Salida

  • Si la operación se realiza correctamente, se devuelve un valor de 0 o 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.GETBIT foo 0

Salida de ejemplo:

(integer) 1

TR.GETBITS

Elemento

Descripción

Sintaxis

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

Complejidad temporal

O(C)

Descripción del comando

Recupera el valor de los bits especificados de una clave TairRoaring. Puede especificar varios bits para recuperar sus valores.

Parámetro

  • Key: el nombre de la clave (estructura de datos TairRoaring).

  • offset: el desplazamiento que desea consultar.

Salida

  • Si la operación se realiza correctamente, se devuelve el valor del bit.

  • Si la clave no existe, se devuelve un arreglo vacío.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.GETBITS foo 3 4 6 8

Salida de ejemplo:

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

TR.BITCOUNT

Elemento

Descripción

Sintaxis

TR.BITCOUNT key [start end]

Complejidad temporal

O(M)

Descripción del comando

Cuenta el número de bits con valor 1 dentro del rango especificado en una clave TairRoaring. El rango es un intervalo cerrado.

Parámetro

  • Key: el nombre de la clave (estructura de datos TairRoaring).

  • start: el desplazamiento inicial (inclusivo), con valores que van de 0 a 2^32.

  • end: el desplazamiento final (inclusivo), con valores que van de 0 a 2^32.

Salida

  • Si la operación se realiza correctamente, se devuelve el número entero de bits de la clave establecidos en 1.

  • Si la clave no existe, se devuelve un valor de 0.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.BITCOUNT foo 4 9

Salida de ejemplo:

(integer) 3

TR.BITPOS

Elemento

Descripción

Sintaxis

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

Complejidad temporal

O(C)

Descripción del comando

Recupera el desplazamiento del bit cuyo número ordinal coincide con count. Un bit puede tener un valor de 1 o 0. El parámetro count es opcional y tiene un valor predeterminado de 1. Un valor de 1 indica el primer bit recuperado mediante el enfoque de conteo de izquierda a derecha.

Parámetro

  • Key: el nombre de la clave (estructura de datos TairRoaring).

  • value: el valor del bit cuyo desplazamiento desea recuperar. El valor del bit puede ser 0 o 1.

  • count: el número ordinal del bit. Un número negativo indica que se utiliza el enfoque de conteo de derecha a izquierda.

Salida

  • Si la operación se realiza correctamente, se devuelve el desplazamiento del bit que tiene un valor de 1 o 0.

  • Si la clave no existe, se devuelve un valor de -1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.BITPOS foo 1 -1

Salida de ejemplo:

(integer) 6

TR.SCAN

Elemento

Descripción

Sintaxis

TR.SCAN key start_offset [COUNT count]

Complejidad temporal

O(C)

Descripción del comando

Explora todos los bits ubicados después de un bit especificado en una clave TairRoaring y devuelve los desplazamientos correspondientes a un recuento de los bits explorados que tienen un valor de 1. El cursor devuelto es el desplazamiento correspondiente a la clave.

Nota

Es posible que este comando explore y devuelva, o no, elementos agregados o eliminados.

Parámetro

  • Key: el nombre de la clave (estructura de datos TairRoaring).

  • start_offset: el desplazamiento del bit. Se explora el bit que coincide con este desplazamiento.

  • COUNT: el número de bits que desea consultar. Valor predeterminado: 10.

Salida

  • Si la operación se realiza correctamente, se devuelve un arreglo que contiene dos elementos:

    • El primer elemento es el siguiente valor de start_offset. Si se ha explorado toda la clave, se devuelve un valor de 0.

    • El segundo elemento: el desplazamiento objetivo de la consulta actual.

    Nota

    Si la clave no existe, se devuelve un arreglo compuesto por 0 y elementos vacíos.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.SCAN foo 0 COUNT 2

Salida de ejemplo:

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

TR.RANGE

Categoría

Descripción

Sintaxis

TR.RANGE key start end

Complejidad temporal

O(C)

Descripción del comando

Devuelve los desplazamientos de los bits que tienen un valor de 1 dentro del rango especificado en una clave TairRoaring. El rango es un intervalo cerrado.

Parámetro

  • Key: el nombre de la clave (estructura de datos TairRoaring).

  • start: el valor inicial del intervalo (inclusivo).

  • end: el valor final del intervalo (inclusivo).

Salida

  • Si la operación se realiza correctamente, se devuelven los desplazamientos de los bits que tienen un valor de 1.

  • Si la clave no existe, se devuelve un arreglo vacío.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Ejecute previamente el comando TR.SETBITS foo 0 2 3 5.

Comando de ejemplo:

TR.RANGE foo 0 5

Salida de ejemplo:

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

TR.RANGEBITARRAY

Elemento

Descripción

Sintaxis

TR.RANGEBITARRAY key start end

Complejidad temporal

O(C)

Descripción del comando

Recupera una cadena compuesta por valores de bit de 0 y 1 dentro del rango especificado en una clave TairRoaring. El rango es un intervalo cerrado.

Parámetro

  • Key: el nombre de la clave (estructura de datos TairRoaring).

  • start: el valor inicial del intervalo (inclusivo).

  • end: el valor final del intervalo (inclusivo).

Salida

  • Si la operación se realiza correctamente, se devuelven los desplazamientos de los bits que tienen un valor de 1.

  • Si la clave no existe, se devuelve nil.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Ejecute previamente el comando TR.SETBITS foo 0 2 3 5.

Comando de ejemplo:

TR.RANGEBITARRAY foo 0 5

Salida de ejemplo:

"101101"

TR.MIN

Elemento

Descripción

Sintaxis

TR.MIN key

Complejidad temporal

O(1)

Descripción del comando

Recupera el desplazamiento del primer bit con valor 1 en una clave TairRoaring. Si ningún bit tiene un valor de 1, se devuelve un valor de -1.

Parámetro

  • Key: el nombre de la clave (estructura de datos TairRoaring).

Salida

  • Si la operación se realiza correctamente:

    • Si existen bits con valor 1 en la clave, se devuelve el desplazamiento entero del primer bit con valor 1.

    • Si no existen bits con valor 1 en la clave o si la clave no existe, se devuelve un valor de -1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.MIN foo

Salida de ejemplo:

4

TR.MAX

Elemento

Descripción

Sintaxis

TR.MAX key

Complejidad temporal

O(1)

Descripción del comando

Recupera el desplazamiento del último bit con valor 1 en un Roaring Bitmap. Si ningún bit tiene un valor de 1, se devuelve -1.

Opciones

  • Key: el nombre de la clave (estructura de datos TairRoaring).

Salida

  • Si la operación se realiza correctamente:

    • Si existen bits con valor 1 en la clave, se devuelve el desplazamiento entero del último bit con valor 1.

    • Si no existen bits con valor 1 en la clave o si la clave no existe, se devuelve un valor de -1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.MAX foo

Salida de ejemplo:

6

TR.STAT

Elemento

Descripción

Sintaxis

TR.STAT key [JSON]

Complejidad temporal

O(M)

Descripción del comando

Devuelve la información estadística de la clave TairRoaring especificada. Esta información incluye el número de contenedores y el uso de memoria.

Parámetro

  • Key: nombre de la clave (estructura de datos TairRoaring).

  • JSON: si se especifica este parámetro, la información estadística se devuelve en formato JSON.

Salida

  • Si la operación es exitosa, se devuelve la siguiente salida:

    "{\"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}}"
    
                                            
  • Si la clave no existe, se devuelve nil.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.STAT foo JSON

Salida de ejemplo:

"{\"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

Elemento

Descripción

Sintaxis

TR.JACCARD key1 key2

Complejidad temporal

O(M)

Descripción del comando

Obtiene el coeficiente de similitud de Jaccard de dos claves TairRoaring. Cuanto mayor sea el coeficiente, mayor será la similitud.

Nota

Este comando no está disponible para claves que residen en distintos slots de instancias de clúster.

Parámetro

  • Key: nombre de la clave (estructura de datos TairRoaring).

Salida

  • Si la operación es exitosa, se devuelve un coeficiente de similitud de Jaccard de tipo double.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Comando de ejemplo:

TR.JACCARD foo1 foo2

Salida de ejemplo:

"0.20000000000000001"

TR.CONTAINS

Categoría

Descripción

Sintaxis

TR.CONTAINS key1 key2

Complejidad temporal

O(M)

Descripción del comando

Comprueba si key2 contiene a key1. En caso afirmativo, key1 es un subconjunto de key2 y se devuelve un valor de 1. De lo contrario, key1 no es un subconjunto de key2 y se devuelve un valor de 0.

Nota

Este comando no está disponible para claves que residen en distintos slots de instancias de clúster.

Opciones

  • Key: nombre de la clave (estructura de datos TairRoaring).

Salida

  • Si la operación es exitosa:

    • Si key2 contiene a key1, se devuelve un valor de 1.

    • Si key2 no contiene a key1, se devuelve un valor de 0.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Ejecute previamente los comandos TR.SETBITS fooM 1 2 3 10 y TR.SETBITS foom 1 2.

Comando de ejemplo:

TR.CONTAINS foom fooM

Salida de ejemplo:

(integer) 1

TR.RANK

Elemento

Descripción

Sintaxis

TR.RANK key offset

Complejidad temporal

O(M)

Descripción del comando

Obtiene el número de bits con valor 1 dentro del rango comprendido entre el primer bit y el bit especificado. El rango es un intervalo cerrado.

Opciones

  • Key: nombre de la clave (estructura de datos TairRoaring).

  • offset: desplazamiento del bit especificado. El valor debe ser un entero.

Salida

  • Si la operación es exitosa, se devuelve el número de bits con valor 1.

  • De lo contrario, se devuelve un mensaje de error.

Ejemplo

Ejecute previamente el comando TR.SETBITS fooM 1 2 3 10.

Comando de ejemplo:

TR.RANK fooM 10

Salida de ejemplo:

(integer) 4

Mensajes de error

Mensaje de error

Descripción

WRONGTYPE Operation against a key holding the wrong kind of value

Tipo de objeto incorrecto: la clave no es un objeto TairRoaring.

ERR bad arguments, must be unsigned 32-bit integer

Tipo de parámetro incorrecto: los valores del parámetro no se pueden convertir en enteros de 32 bits.

ERR invalid arguments, maybe out of range or illegal

Parámetros no válidos:

  • El desplazamiento no es un entero de 32 bits.

  • Los desplazamientos inicial y final no son válidos.

  • El valor del parámetro excede el número máximo de elementos permitidos para una clave TairRoaring.

ERR key already exist

La clave TairRoaring ya existe y sus datos no se pueden sobrescribir.

Nota

Este error se corrigió en TairRoaring V2.2.

ERR key not found

El objeto Roaring Bitmap no existe. Esta operación no es compatible.

Nota

Este error se corrigió en TairRoaring V2.2.