Tüm Ürünler
Search
Belge Merkezi

Tair (Redis® OSS-Compatible):Roaring

Son Güncelleme:Oct 03, 2026

TairRoaring, Roaring bit eşlemleri için Tair tabanlı bir veri yapısıdır. Bu konuda TairRoaring ve desteklediği komutlar açıklanmaktadır.

TairRoaring'e Giriş

Bit eşlemi (bitset olarak da bilinir), büyük miktardaki verilerin sorgularını optimize etmek için az miktarda depolama alanı kullanan yaygın bir veri yapısıdır. Bit eşlemleri, karma tabanlı uygulamalara göre daha fazla alan tasarrufu sağlar ancak seyrek verileri depolamak için uygun değildir. Bu soruna yanıt olarak sıkıştırılmış bit eşlemleri geliştirilmiştir. Roaring bit eşlemleri, diğer sıkıştırılmış bit eşlemlerine kıyasla daha verimli ve dengeli olan, sektör tarafından kabul görmüş bir bit eşlemi türüdür.

TairRoaring, Roaring bit eşlemlerini aşağıdaki şekillerde optimize eder:

  • TairRoaring, iki seviyeli dizinler ve dinamik konteynerler kullanarak birçok senaryoda performans ile alan karmaşıklığı arasında denge kurabilir.

  • TairRoaring; tek komut, çoklu veri (SIMD), vektörleştirme ve popcount algoritmaları gibi optimizasyon tekniklerini kullanarak hesaplama verimliliğini artırır ve etkili zaman ve alan karmaşıklığı sunar.

  • TairRoaring, iş senaryolarını desteklemek için Tair tarafından sağlanan güçlü hesaplama performansı ve yüksek kararlılıktan yararlanır.

Tipik senaryolar

TairRoaring; canlı yayın, müzik ve e-ticaret gibi sektörlerde kullanım için uygundur. Kişiselleştirilmiş öneri ve hassas pazarlama gibi senaryolar için kullanıcıları çok boyutlu etiketlerle işaretlemek üzere TairRoaring'i kullanabilirsiniz.

Sürüm notları

Önemli

TairRoaring V2'deki değişiklikler:

  • TR.RANGEINTARRAY: TairRoaring V1'deki TR.RANGEINTARRAY komutu, TairRoaring V2'de TR.RANGE olarak değiştirilmiştir.

  • TR.SETRANGE: V1'de komutun çıktısı OK iken, V2'de 1 olarak ayarlanan bitlerin sayısıdır. Komutun diğer yönleri değişmemiştir.

  1. 13 Eylül 2021 tarihinde, 1.7.20 veya sonraki küçük sürümleri çalıştıran örnekler için TairRoaring V1 yayınlandı.

  2. 11 Mart 2022 tarihinde, 1.7.27 veya sonraki küçük sürümleri çalıştıran örnekler için TairRoaring V2 yayınlandı.

    TairRoaring V2, bazı komut uygulamalarını optimize eder ve komut performansını iyileştirir. TairRoaring V2; TR.SETBITS ve TR.CLEARBITS dahil olmak üzere dokuz yeni komut içerir, üç komutu günceller (bunlardan ikisi hala TairRoaring V1 ile uyumludur) ve bir komutun adını değiştirir.

  3. 20 Nisan 2022 tarihinde, 1.8.1 veya sonraki küçük sürümleri çalıştıran örnekler için TairRoaring V2.2 yayınlandı.

    Bu sürüm, TR.JACCARD, TR.CONTAINS ve TR.RANK komutlarını ekler ve bazı komutların anahtar bulunmadığında döndürdüğü hataları günceller (ERR key not found hatası kaldırılır).

En iyi uygulamalar

TairRoaring kullanarak kitle segmentasyonu

Gereksinim

Örnek, bir Tair bellek optimize edilmiş örnektir. Bellek optimize edilmiş örneğiniz Redis 5.0 ile uyumluysa küçük sürümün 1.7.7 veya üzeri olması gerekir.

Not

En son küçük sürüm daha fazla özellik ve daha yüksek kararlılık sağlar. Örneği en son küçük sürüme güncellemenizi öneririz. Daha fazla bilgi için bkz. Örneğin küçük sürümünü güncelleme. Örneğiniz bir küme örneği veya okuma/yazma ayrıştırma örneğiyse, tüm komutların beklendiği gibi çalıştırılabilmesini sağlamak için örnek içindeki proxy düğümlerini en son küçük sürüme güncellemenizi öneririz.

Kullanım notları

İşlemler, bir Tair örneğindeki TairRoaring verileri için geçerlidir.

Komut listesi

Tür

Komut

Sözdizimi

Açıklama

Sürüm değişikliği

Yazma işlemi

TR.SETBIT

TR.SETBIT key offset value

Bir TairRoaring anahtarındaki belirtilen biti 1 veya 0 değerine ayarlar ve orijinal bit değerini döndürür. Ofset 0'dan başlar.

- (Yok)

TR.SETBITS

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

Bir TairRoaring anahtarındaki belirtilen bitin değerini 1 olarak ayarlar. Birden fazla bit değeri belirtebilirsiniz.

V2'de eklendi

TR.CLEARBITS

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

Bir TairRoaring anahtarındaki belirtilen bitin değerini 0 olarak ayarlar. Belirtilen bit zaten 0 değerine sahipse işlem gerçekleştirilmez. Birden fazla bit değeri belirtebilirsiniz.

V2'de eklendi

TR.SETRANGE

TR.SETRANGE key start end

Bir TairRoaring anahtarındaki belirtilen aralıktaki bitleri 1 değerine ayarlar. Aralık kapalı bir aralıktır.

V2'de güncellendi. V2'deki komut güncellemesinden sonra komut çıktısı, 1 olarak ayarlanan bitlerin sayısına değiştirildi.

TR.APPENDBITARRAY

TR.APPENDBITARRAY key offset bitarray

Bir bit dizisini, bir Roaring Bit Eşlemideki belirtilen bitten sonraki bir konuma ekler ve orijinal verilerin üzerine yazar. Bit dizisi 0 ve 1 değerlerinden oluşur.

V2'de eklendi

TR.FLIPRANGE

TR.FLIPRANGE key start end

Bir TairRoaring anahtarındaki belirtilen aralıktaki bitlerin değerlerini 0'dan 1'e veya 1'den 0'a değiştirir. Aralık kapalı bir aralıktır. Anahtar yoksa anahtar boş bir veri kümesi olarak oluşturulur ve işlem anahtar üzerinde gerçekleştirilir.

V2'de eklendi

TR.APPENDINTARRAY

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

Bir TairRoaring anahtarındaki belirtilen bitin değerini 1 olarak ayarlar. Birden fazla bit değeri belirtebilirsiniz.

Not

TairRoaring V2'de bu komut yerine TR.SETBITS kullanmanızı öneririz.

-

TR.SETINTARRAY

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

Belirtilen tamsayı dizisine dayalı olarak bir TairRoaring anahtarı oluşturur. Anahtar zaten varsa bu komut anahtardaki verilerin üzerine yazar.

Not

TairRoaring V2'de bu komut yerine TR.SETBITS kullanmanızı öneririz.

-

TR.SETBITARRAY

TR.SETBITARRAY key value

Belirtilen bit dizisi dizesine dayalı olarak bir TairRoaring anahtarı oluşturur. Bit dizisi dizesi 0 ve 1 değerlerinden oluşur. Anahtar zaten varsa bu komut anahtardaki verilerin üzerine yazar.

Not

TairRoaring V2'de bu komut yerine TR.APPENDBITARRAY kullanmanızı öneririz.

-

TR.BITOP

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

Roaring Bit Eşlemleri üzerinde küme işlemleri gerçekleştirir ve sonucu destkey içinde saklar. Komut AND, OR, XOR, NOT ve DIFF işlemlerini destekler.

Not

Bu komut, küme örneklerinde yuvalar arasında bulunan anahtarlar için kullanılamaz.

-

TR.BITOPCARD

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

Birden fazla TairRoaring anahtarı üzerinde bitsel işlem gerçekleştirir. AND, OR, XOR, NOT ve DIFF bitsel işlemleri desteklenir.

Not

Bu komut, küme örneklerinde yuvalar arasında bulunan anahtarlar için kullanılamaz.

V2'de eklendi

TR.OPTIMIZE

TR.OPTIMIZE key

Bir TairRoaring anahtarının depolamasını optimize eder. Anahtar nispeten büyükse ve oluşturulduktan sonra öncelikle okuma işlemleri için kullanılıyorsa bu komutu çalıştırabilirsiniz.

-

Okuma işlemi

TR.GETBIT

TR.GETBIT key offset

Bir TairRoaring anahtarından belirtilen bitin değerini alır.

-

TR.GETBITS

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

Bir TairRoaring anahtarından belirtilen bitin değerini alır. Değer almak için birden fazla bit belirtebilirsiniz.

V2'de eklendi

TR.BITCOUNT

TR.BITCOUNT key [start end]

Bir TairRoaring anahtarındaki belirtilen aralıktaki 1 değerine sahip bitlerin sayısını hesaplar. Aralık kapalı bir aralıktır.

V2 ve ileriye dönük uyumlulukta güncellendi.

TR.BITPOS

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

Sıra numarası count olan bitin ofsetini alır. Bir bitin değeri 1 veya 0 olabilir. Count parametresi isteğe bağlıdır ve varsayılan değeri 1'dir. 1 değeri, soldan sağa sayma yaklaşımı kullanılarak alınan ilk biti gösterir.

V2'de güncellendi ve ileriye dönük uyumlu.

TR.SCAN

TR.SCAN key start_offset [COUNT count]

Bir TairRoaring anahtarında belirtilen bir bitten sonra bulunan tüm bitleri tarar ve değeri 1 olan taranan bitlerin sayısı kadar ofseti döndürür. Döndürülen imleç, anahtara karşılık gelen ofsettir.

Not

Bu komut, eklenen veya silinen öğeleri tarayabilir veya döndürmeyebilir.

V2'de eklendi

TR.RANGE

TR.RANGE key start end

Bir TairRoaring anahtarındaki belirtilen aralıktaki 1 değerine sahip bitlerin ofsetlerini döndürür. Aralık kapalı bir aralıktır.

V1'deki TR.RANGEINTARRAY'den V2'de TR.RANGE olarak yeniden adlandırıldı.

TR.RANGEBITARRAY

TR.RANGEBITARRAY key start end

Bir TairRoaring anahtarındaki belirtilen aralıktaki 0 ve 1 bit değerlerinden oluşan bir dizeyi alır. Aralık kapalı bir aralıktır.

V2'de eklendi

TR.MIN

TR.MIN key

Bir TairRoaring anahtarında 1 değerine sahip ilk bitin ofsetini alır. Hiçbir bitin değeri 1 değilse -1 değeri döndürülür.

-

TR.MAX

TR.MAX key

Bir Roaring Bit Eşleminde 1 değerine sahip son bitin ofsetini alır. Hiçbir bitin değeri 1 değilse -1 döndürülür.

-

TR.STAT

TR.STAT key [JSON]

Belirtilen TairRoaring anahtarının istatistiksel bilgilerini döndürür. Bilgiler, konteyner sayısını ve bellek kullanımını içerir.

V2'de eklendi

TR.JACCARD

TR.JACCARD key1 key2

İki TairRoaring anahtarının Jaccard benzerlik katsayısını alır. Katsayı ne kadar yüksekse benzerlik de o kadar yüksektir.

Not

Bu komut, küme örneklerinde yuvalar arasında bulunan anahtarlar için kullanılamaz.

V2.2'de eklendi

TR.CONTAINS

TR.CONTAINS key1 key2

key2'nin key1'i içerip içermediğini kontrol eder. Evet ise key1, key2'nin bir alt kümesidir ve 1 değeri döndürülür. Aksi takdirde key1, key2'nin bir alt kümesi değildir ve 0 değeri döndürülür.

Not

Bu komut, küme örneklerinde yuvalar arasında bulunan anahtarlar için kullanılamaz.

V2.2'de eklendi

TR.RANK

TR.RANK key offset

İlk bitten belirtilen bite kadar olan aralıktaki 1 değerine sahip bitlerin sayısını alır. Aralık kapalı bir aralıktır.

V2.2'de eklendi

Genel amaçlı işlem

DEL

DEL key [key ...]

Bir veya daha fazla TairRoaring anahtarını siler.

-

Not
  • Aşağıdaki bölümde komut sözdizimi açıklanmaktadır:

    • BÜYÜK HARF anahtar kelime: Komut anahtar kelimesini gösterir.

    • İtalik metin: Değişkenleri gösterir.

    • [seçenekler]: Parantez içine alınmış parametrelerin isteğe bağlı olduğunu gösterir. Parantez içine alınmamış parametreler belirtilmelidir.

    • A|B: Dikey çizgilerle (|) ayrılmış parametrelerin birbirini dışladığını gösterir. Parametrelerden yalnızca biri belirtilebilir.

    • ...: Bu sembolün önündeki parametrenin tekrar tekrar belirtilebileceğini gösterir.

  • Bu konuda, zaman karmaşıklığı ifadelerinde kullanılan harfler konuya özel anlamlar taşır:

    • C, argc veya parametre aralığını gösterir.

    • M, bir veri yapısında 1 olarak ayarlanan bitlerin sayısını gösterir (örneğin, bir listedeki düğüm sayısı veya bir hash'teki alan sayısı).

TR.SETBIT

Kategori

Açıklama

Sözdizimi

TR.SETBIT key offset value

Zaman karmaşıklığı

O(1)

Komut açıklaması

Bir TairRoaring anahtarındaki belirtilen biti 1 veya 0 değerine ayarlar ve orijinal bit değerini döndürür. Ofset 0'dan başlar.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • offset: Ayarlanacak bitin ofsetini temsil eden, değer aralığı 0 ~ 2^32 olan bir tamsayı.

  • value: Ayarlanacak bit değeri; 1 veya 0 olabilir.

Çıktı

  • İşlem başarılı olursa 0 veya 1 bit değeri döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.SETBIT foo 0 1

Örnek çıktı:

(integer) 0

TR.SETBITS

Öğe

Açıklama

Sözdizimi

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

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarındaki belirtilen bitin değerini 1 olarak ayarlar. Birden fazla bit değeri belirtebilirsiniz.

Seçenekler

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • offset: Ayarlanacak bitin ofsetini temsil eden, değer aralığı 0 ~ 2^32 olan bir tamsayı.

Çıktı

  • İşlem başarılı olursa anahtardaki 1 olarak ayarlanan bitlerin sayısı döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.SETBITS foo 9 10

Örnek çıktı:

(integer) 5

TR.CLEARBITS

Öğe

Açıklama

Sözdizimi

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

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarındaki belirtilen bitin değerini 0 olarak ayarlar. Belirtilen bit zaten 0 değerine sahipse işlem gerçekleştirilmez. Birden fazla bit değeri belirtebilirsiniz.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • offset: Ayarlanacak bitin ofsetini temsil eden, değer aralığı 0 ~ 2^32 olan bir tamsayı.

Çıktı

  • İşlem başarılı olursa anahtardaki 0 olarak ayarlanan bitlerin sayısı döndürülür.

  • Anahtar yoksa 0 değeri döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.CLEARBITS foo 9 10

Örnek çıktı:

(integer) 2

TR.SETRANGE

Öğe

Açıklama

Sözdizimi

TR.SETRANGE key start end

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarındaki belirtilen aralıktaki bitleri 1 değerine ayarlar. Aralık kapalı bir aralıktır.

Örneğin, TR.SETRANGE foo 1 3 komutunu çalıştırırsanız sistem 0111 foo anahtarını oluşturur.

Seçenekler

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • start: Aralığın başlangıç değeri. Geçerli değerler: 0 ila 2^32.

  • end: Aralığın bitiş değeri. Geçerli değerler: 0 ila 2^32.

Çıktı

  • İşlem başarılı olursa anahtardaki 1 olarak ayarlanan bitlerin sayısı döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.SETRANGE foo 1 3

Örnek çıktı:

(integer) 3

TR.APPENDBITARRAY

Öğe

Açıklama

Sözdizimi

TR.APPENDBITARRAY key offset bitarray

Zaman karmaşıklığı

O(C)

Komut açıklaması

Belirtilen bitten sonraki bir konuma, Roaring Bitmap içine bir bit dizisi ekler ve orijinal verilerin üzerine yazar. Bit dizisi 0 ve 1 değerlerinden oluşur.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • offset: Belirtilen başlangıç ofseti (bu değer dahil değildir), değer aralığı -1 ~ 2^32'dir.

  • bitarray: Eklenecek bit dizisi; mevcut verilerin üzerine yazar ve ardışık 0 veya 1 değerlerinden oluşur. Değer aralığı 0 ~ 2^32'dir.

    Not

    Belirtilen ofset ile eklenen bitarray'in toplam uzunluğu 2^32 değerini aşamaz, aksi takdirde işlem başarısız olur.

Çıktı

  • İşlem başarılı olursa, anahtarda 1 olarak ayarlanan bit sayısı döndürülür.

  • Aksi takdirde, bir hata mesajı döndürülür.

Örnek

Önceden TR.SETBITS foo 0 komutunu çalıştırın.

Örnek komut:

TR.APPENDBITARRAY foo 1 1101

Örnek çıktı:

(integer) 4

Bu durumda, TairRoaring foo anahtarı "101101" değerindedir.

TR.FLIPRANGE

Öğe

Açıklama

Sözdizimi

TR.FLIPRANGE key start end

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarındaki belirtilen aralıktaki bitlerin değerlerini 0'dan 1'e veya 1'den 0'a değiştirir. Aralık kapalı bir aralıktır. Anahtar yoksa, anahtar boş bir veri kümesi olarak oluşturulur ve işlem bu anahtar üzerinde gerçekleştirilir.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • start: Başlangıç ofseti (dahil), değerler 0 ila 2^32 arasındadır.

  • end: Bitiş ofseti (dahil), değerler 0 ila 2^32 arasındadır.

Çıktı

  • İşlem başarılı olursa, anahtarda 1 olarak ayarlanan bit sayısı döndürülür.

  • Anahtar yoksa, anahtar boş bir veri kümesi olarak oluşturulur ve işlem bu anahtar üzerinde gerçekleştirilir. İşlem başarılı olursa, anahtarda 1 olarak ayarlanan bit sayısı döndürülür.

  • Aksi takdirde, bir hata mesajı döndürülür.

Örnek

Önceden TR.SETBITS foo 0 2 3 5 komutunu çalıştırın.

Örnek komut:

TR.FLIPRANGE foo 0 5

Örnek çıktı:

(integer) 2

Bu durumda, TairRoaring foo anahtarı "01001" değerindedir.

TR.APPENDINTARRAY

Öğe

Açıklama

Sözdizimi

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

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarındaki belirtilen bitin değerini 1 olarak ayarlar. Birden fazla bit değeri belirtebilirsiniz.

Not

TairRoaring V2'de, bu komut yerine TR.SETBITS kullanmanızı öneririz.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • value: İşlemek istediğiniz bitin tamsayı ofseti. Geçerli değerler: 0 ila 4294967296.

Çıktı

  • İşlem başarılı olursa, OK döndürülür.

  • Aksi takdirde, bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.APPENDINTARRAY foo 9 10

Örnek çıktı:

OK

TR.SETINTARRAY

Öğe

Açıklama

Sözdizimi

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

Zaman karmaşıklığı

O(C)

Komut açıklaması

Belirtilen tamsayı dizisine göre bir TairRoaring anahtarı oluşturur. Anahtar zaten varsa, bu komut anahtardaki verilerin üzerine yazar.

Not

TairRoaring V2'de, bu komut yerine TR.SETBITS kullanmanızı öneririz.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • value: Ayarlanacak bit konumunu belirten bir tamsayı.

Çıktı

  • İşlem başarılı olursa, OK döndürülür.

  • Aksi takdirde, bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.SETINTARRAY foo 2 4 5 6

Örnek çıktı:

OK

TR.SETBITARRAY

Öğe

Açıklama

Sözdizimi

TR.SETBITARRAY key value

Zaman karmaşıklığı

O(C)

Komut açıklaması

Belirtilen bit dizisi dizesine göre bir TairRoaring anahtarı oluşturur. Bit dizisi dizesi 0 ve 1 değerlerinden oluşur. Anahtar zaten varsa, bu komut anahtardaki verilerin üzerine yazar.

Not

TairRoaring V2'de, bu komut yerine TR.APPENDBITARRAY kullanmanızı öneririz.

Parametre

  • key: Bu komutu çalıştırarak yönetmek istediğiniz anahtar.

  • value: Bit dizisini temsil eden 0 ve 1'lerden oluşan bir dize.

Çıktı

  • İşlem başarılı olursa: OK döndürülür.

  • Aksi takdirde, bir hata mesajı döndürülür.

Örnek

Örnek komut:

tr.setbitarray foo 10101001

Örnek çıktı:

OK 

TR.BITOP

Öğe

Açıklama

Sözdizimi

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

Zaman karmaşıklığı

O(C * M)

Komut açıklaması

Roaring Bitmap'ler üzerinde küme işlemleri gerçekleştirir ve sonucu destkey içinde saklar. Komut AND, OR, XOR, NOT ve DIFF işlemlerini destekler.

Not

Bu komut, küme örneklerinde farklı slotlarda bulunan anahtarlar için kullanılamaz.

Seçenekler

  • destkey: Sonucun saklandığı hedef anahtar (TairRoaring veri yapısı).

  • operation: Küme işlemi türü. Geçerli değerler: AND (mantıksal VE), OR (mantıksal VEYA), XOR (özel VEYA), NOT (mantıksal DEĞİL) ve DIFF (fark).

    Not
    • NOT işlemleri yalnızca tek bir anahtar üzerinde gerçekleştirilebilir.

    • DIFF işlemleri yalnızca iki anahtar üzerinde gerçekleştirilebilir. Anahtarların sırasına dikkat edin. Örneğin, TR.BITOP result DIFF key1 key2 komutu key2 değerini key1 değerinden çıkarır (key1 - key2).

  • key: TairRoaring veri yapısının anahtarı. Birden fazla anahtar belirtebilirsiniz.

Çıktı

  • İşlem başarılı olursa sonuçta 1 olarak ayarlanmış bitlerin tamsayı sayısı döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.BITOP result OR foo bar

Örnek çıktı:

(integer) 6

TR.BITOPCARD

Öğe

Açıklama

Sözdizimi

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

Zaman karmaşıklığı

O(C * M)

Komut açıklaması

Birden fazla TairRoaring anahtarı üzerinde bitsel işlem gerçekleştirir. AND, OR, XOR, NOT ve DIFF bitsel işlemleri desteklenir.

Not

Bu komut, küme örneklerinde farklı slotlarda bulunan anahtarlar için kullanılamaz.

seçenekler

  • operation: Küme işlemi türü. Geçerli değerler: AND, OR, XOR, NOT ve DIFF.

    Not
    • NOT işlemleri yalnızca tek bir anahtar üzerinde gerçekleştirilebilir.

    • DIFF işlemleri yalnızca iki anahtar arasındaki farkı hesaplayabilir. Fark hesaplarken işlem sırasına dikkat edin. Örneğin, TR.BITOP result DIFF key1 key2 komutu key1'in key2'ye göre farkını hesaplar (key1 - key2).

  • key: Anahtar adı (TairRoaring veri yapısı). Birden fazla anahtar belirtebilirsiniz.

Çıktı

  • İşlem başarılı olursa sonuçta 1 olarak ayarlanmış bitlerin tamsayı sayısı döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.BITOPCARD NOT foo

Örnek çıktı:

(integer) 2

TR.OPTIMIZE

Öğe

Açıklama

Sözdizimi

TR.OPTIMIZE key

Zaman karmaşıklığı

O(M)

Komut açıklaması

Bir TairRoaring anahtarının depolamasını optimize eder. Anahtar nispeten büyükse ve oluşturulduktan sonra ağırlıklı olarak okuma işlemleri için kullanılıyorsa bu komutu çalıştırabilirsiniz.

Seçenekler

  • Key: Anahtar adı (TairRoaring veri yapısı).

Çıktı

  • İşlem başarılı olursa OK döndürülür.

  • Anahtar mevcut değilse nil döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.OPTIMIZE foo

Örnek çıktı:

OK

TR.GETBIT

Öğe

Açıklama

Sözdizimi

TR.GETBIT key offset

Zaman karmaşıklığı

O(1)

Komut açıklaması

Bir TairRoaring anahtarından belirtilen bitin değerini alır.

Seçenekler

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • offset: Sorgulamak istediğiniz ofset.

Çıktı

  • İşlem başarılı olursa 0 veya 1 değeri döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.GETBIT foo 0

Örnek çıktı:

(integer) 1

TR.GETBITS

Öğe

Açıklama

Sözdizimi

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

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarından belirtilen bitin değerini alır. Değer almak için birden fazla bit belirtebilirsiniz.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • offset: Sorgulamak istediğiniz ofset.

Çıktı

  • İşlem başarılı olursa bit değeri döndürülür.

  • Anahtar mevcut değilse boş bir dizi döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.GETBITS foo 3 4 6 8

Örnek çıktı:

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

TR.BITCOUNT

Öğe

Açıklama

Sözdizimi

TR.BITCOUNT key [start end]

Zaman karmaşıklığı

O(M)

Komut açıklaması

Bir TairRoaring anahtarında belirtilen aralıkta değeri 1 olan bitlerin sayısını hesaplar. Aralık kapalı bir aralıktır.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • start: Başlangıç ofseti (dahil), değerler 0 ile 2^32 arasında değişir.

  • end: Bitiş ofseti (dahil), değerler 0 ile 2^32 arasında değişir.

Çıktı

  • İşlem başarılı olursa anahtarda 1 olarak ayarlanmış bitlerin tamsayı sayısı döndürülür.

  • Anahtar mevcut değilse 0 değeri döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.BITCOUNT foo 4 9

Örnek çıktı:

(integer) 3

TR.BITPOS

Öğe

Açıklama

Sözdizimi

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

Zaman karmaşıklığı

O(C)

Komut açıklaması

Ordinal numarası count olan bitin ofsetini alır. Bir bitin değeri 1 veya 0 olabilir. count parametresi isteğe bağlıdır ve varsayılan değeri 1'dir. 1 değeri, soldan sağa doğru sayma yaklaşımı kullanılarak alınan ilk biti gösterir.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • value: Ofsetini almak istediğiniz bitin değeri. Bit değeri 0 veya 1 olabilir.

  • count: Bitin ordinal numarası. Negatif bir sayı, sağdan sola doğru sayma yaklaşımının kullanıldığını gösterir.

Çıktı

  • İşlem başarılı olursa değeri 1 veya 0 olan bitin ofseti döndürülür.

  • Anahtar mevcut değilse -1 değeri döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.BITPOS foo 1 -1

Örnek çıktı:

(integer) 6

TR.SCAN

Öğe

Açıklama

Sözdizimi

TR.SCAN key start_offset [COUNT count]

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarında belirtilen bir bitten sonra bulunan tüm bitleri tarar ve değeri 1 olan taranan bitlerin count sayısına karşılık gelen ofsetleri döndürür. Döndürülen imleç, anahtara karşılık gelen ofsettir.

Not

Bu komut eklenen veya silinen öğeleri tarayabilir veya taramayabilir.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • start_offset: Bitin ofseti. Bu ofsetle eşleşen bit taranır.

  • COUNT: Sorgulamak istediğiniz bit sayısı. Varsayılan değer: 10.

Çıktı

  • İşlem başarılı olursa iki öğe içeren bir dizi döndürülür:

    • İlk öğe sonraki start_offset değeridir. Anahtar taranırsa 0 değeri döndürülür.

    • İkinci öğe: Geçerli sorgunun hedef ofseti.

    Not

    Anahtar mevcut değilse 0 ve boş öğelerden oluşan bir dizi döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.SCAN foo 0 COUNT 2

Örnek çıktı:

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

TR.RANGE

Kategori

Açıklama

Sözdizimi

TR.RANGE key start end

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarında belirtilen aralıkta değeri 1 olan bitlerin ofsetlerini döndürür. Aralık kapalı bir aralıktır.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • start: Aralığın başlangıç değeri (dahil).

  • end: Aralığın bitiş değeri (dahil).

Çıktı

  • İşlem başarılı olursa değeri 1 olan bitlerin ofsetleri döndürülür.

  • Anahtar mevcut değilse boş bir dizi döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Öncesinde TR.SETBITS foo 0 2 3 5 komutunu çalıştırın.

Örnek komut:

TR.RANGE foo 0 5

Örnek çıktı:

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

TR.RANGEBITARRAY

Öğe

Açıklama

Sözdizimi

TR.RANGEBITARRAY key start end

Zaman karmaşıklığı

O(C)

Komut açıklaması

Bir TairRoaring anahtarında belirtilen aralıkta 0 ve 1 bit değerlerinden oluşan bir dizeyi alır. Aralık kapalı bir aralıktır.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • start: Aralığın başlangıç değeri (dahil).

  • end: Aralığın bitiş değeri (dahil).

Çıktı

  • İşlem başarılı olursa değeri 1 olan bitlerin ofsetleri döndürülür.

  • Anahtar mevcut değilse nil döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Öncesinde TR.SETBITS foo 0 2 3 5 komutunu çalıştırın.

Örnek komut:

TR.RANGEBITARRAY foo 0 5

Örnek çıktı:

"101101"

TR.MIN

Öğe

Açıklama

Sözdizimi

TR.MIN key

Zaman karmaşıklığı

O(1)

Komut açıklaması

Bir TairRoaring anahtarında değeri 1 olan ilk bitin ofsetini alır. Hiçbir bitin değeri 1 değilse -1 değeri döndürülür.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

Çıktı

  • İşlem başarılı olursa:

    • Anahtarda değeri 1 olan bitler varsa değeri 1 olan ilk bitin tamsayı ofseti döndürülür.

    • Anahtarda değeri 1 olan bit yoksa veya anahtar mevcut değilse -1 değeri döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.MIN foo

Örnek çıktı:

4

TR.MAX

Öğe

Açıklama

Sözdizimi

TR.MAX key

Zaman karmaşıklığı

O(1)

Komut açıklaması

Bir Roaring Bitmap'te değeri 1 olan son bitin ofsetini alır. Hiçbir bitin değeri 1 değilse -1 döndürülür.

Seçenekler

  • Key: Anahtar adı (TairRoaring veri yapısı).

Çıktı

  • İşlem başarılı olursa:

    • Anahtarda değeri 1 olan bitler varsa değeri 1 olan son bitin tamsayı ofseti döndürülür.

    • Anahtarda değeri 1 olan bit yoksa veya anahtar mevcut değilse -1 değeri döndürülür.

  • Aksi takdirde bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.MAX foo

Örnek çıktı:

6

TR.STAT

Öğe

Açıklama

Sözdizimi

TR.STAT key [JSON]

Zaman karmaşıklığı

O(M)

Komut açıklaması

Belirtilen TairRoaring anahtarının istatistiksel bilgilerini döndürür. Bu bilgiler, konteyner sayısını ve bellek kullanımını içerir.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • JSON: Bu parametre belirtilirse istatistik bilgileri JSON biçiminde döndürülür.

Çıktı

  • İşlem başarılı olursa aşağıdaki çıktı döndürülür:

    "{\"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}}"
    
                                            
  • Anahtar mevcut değilse nil döndürülür.

  • Diğer durumlarda bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.STAT foo JSON

Örnek çıktı:

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

Öğe

Açıklama

Sözdizimi

TR.JACCARD key1 key2

Zaman karmaşıklığı

O(M)

Komut açıklaması

İki TairRoaring anahtarı arasındaki Jaccard benzerlik katsayısını alır. Katsayı ne kadar yüksekse benzerlik de o kadar yüksektir.

Not

Bu komut, küme örneklerinde farklı yuvalarda bulunan anahtarlar için kullanılamaz.

Parametre

  • Key: Anahtar adı (TairRoaring veri yapısı).

Çıktı

  • İşlem başarılı olursa double türünde bir Jaccard benzerlik katsayısı döndürülür.

  • Diğer durumlarda bir hata mesajı döndürülür.

Örnek

Örnek komut:

TR.JACCARD foo1 foo2

Örnek çıktı:

"0.20000000000000001"

TR.CONTAINS

Kategori

Açıklama

Sözdizimi

TR.CONTAINS key1 key2

Zaman karmaşıklığı

O(M)

Komut açıklaması

key2'nin key1'i içerip içermediğini kontrol eder. Evet ise key1, key2'nin alt kümesidir ve 1 değeri döndürülür. Aksi takdirde key1, key2'nin alt kümesi değildir ve 0 değeri döndürülür.

Not

Bu komut, küme örneklerinde farklı yuvalarda bulunan anahtarlar için kullanılamaz.

Seçenekler

  • Key: Anahtar adı (TairRoaring veri yapısı).

Çıktı

  • İşlem başarılı olursa:

    • key2, key1'i içeriyorsa 1 değeri döndürülür.

    • key2, key1'i içermiyorsa 0 değeri döndürülür.

  • Diğer durumlarda bir hata mesajı döndürülür.

Örnek

Önceden TR.SETBITS fooM 1 2 3 10 ve TR.SETBITS foom 1 2 komutlarını çalıştırın.

Örnek komut:

TR.CONTAINS foom fooM

Örnek çıktı:

(integer) 1

TR.RANK

Öğe

Açıklama

Sözdizimi

TR.RANK key offset

Zaman karmaşıklığı

O(M)

Komut açıklaması

İlk bitten belirtilen bite kadar olan aralıktaki (kapalı aralık) 1 değerine sahip bitlerin sayısını alır.

Seçenekler

  • Key: Anahtar adı (TairRoaring veri yapısı).

  • offset: Belirtilen bitin ofseti. Değer bir tamsayı olmalıdır.

Çıktı

  • İşlem başarılı olursa 1 değerine sahip bitlerin sayısı döndürülür.

  • Diğer durumlarda bir hata mesajı döndürülür.

Örnek

Önceden TR.SETBITS fooM 1 2 3 10 komutunu çalıştırın.

Örnek komut:

TR.RANK fooM 10

Örnek çıktı:

(integer) 4

Hata mesajları

Hata mesajı

Açıklama

WRONGTYPE Operation against a key holding the wrong kind of value

Yanlış nesne türü: Anahtar bir TairRoaring nesnesi değil.

ERR bad arguments, must be unsigned 32-bit integer

Yanlış parametre türü: Parametre değerleri 32 bitlik tamsayılara dönüştürülemiyor.

ERR invalid arguments, maybe out of range or illegal

Geçersiz parametreler:

  • Ofset 32 bitlik bir tamsayı değil.

  • Başlangıç ve bitiş ofsetleri geçersiz.

  • Parametre değeri, bir TairRoaring anahtarı için izin verilen maksimum öğe sayısını aşıyor.

ERR key already exist

TairRoaring anahtarı zaten mevcut ve verileri üzerine yazılamıyor.

Not

Bu hata TairRoaring V2.2 sürümünde düzeltilmiştir.

ERR key not found

Roaring Bitmap nesnesi mevcut değil. Bu işlem desteklenmiyor.

Not

Bu hata TairRoaring V2.2 sürümünde düzeltilmiştir.