TairHash (exHash), her alan için bir son kullanma süresi ve sürüm belirlemenize olanak tanıyan bir hash veri yapısıdır. Bu özellik, hash veri yapısının esnekliğini artırır ve birçok senaryoda geliştirmeyi basitleştirir.
Genel Bakış
TairHash, standart Redis hash yapısını iki önemli yetenekle genişletir: alan bazında son kullanma süresi ve alan bazında sürümleme. Anahtarın geri kalanını etkilemeden tek tek alanlar için TTL (Time To Live) ayarlayabilir ve çakışan eşzamanlı yazmaları önlemek için sürüm numaralarını kullanabilirsiniz.
TairHash, yanıt süresini fark edilir şekilde etkilemeden süresi dolmuş alanları proaktif olarak kontrol eden ve silen Aktif Son Kullanma Süresi algoritmasını kullanır. Ayrıca, erişim sırasında süresi dolmuş alanları kaldıran pasif son kullanma süresi özelliğini de destekler.
Temel özellikler
Her alan için bir son kullanma süresi ve sürüm belirtin.
Alanlar için aktif ve pasif son kullanma süresi ilkelerini kullanın.
Yerel Redis hash veri türüne benzer sözdizimi kullanın.
Bu modül açık kaynaktır. Daha fazla bilgi için bkz. TairHash.
Ön Koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
-
Aşağıdaki türlerden birine sahip bir Tair örneği:
Kalıcı bellek iyileştirmeli (küçük sürüm 1.2.6 veya üzeri)
Ek özellikler ve geliştirilmiş kararlılık için örneğiniz en son küçük sürümde tutun. Bkz. Küçük sürüm güncellemesi . Küme mimarisi veya okuma/yazma ayrıştırma mimarisi kullanan örnekler için proxy düğümlerini de güncelleyin; aksi takdirde bazı komutlar tanınmayabilir.
Dikkat Edilmesi Gerekenler
Komutlar, bir Tair örneğindeki TairHash verileri üzerinde çalışır.
Komutlar
Aşağıdaki tablolar, tüm TairHash komutlarını işlem türüne göre gruplandırarak listeler.
Yazma komutları
| Komut | Sözdizimi | Açıklama |
|---|---|---|
| EXHSET | EXHSET key field value [EX time] [EXAT time] [PX time] [PXAT time] [NX | XX] [VER | ABS version] [KEEPTTL] |
Belirtilen TairHash anahtarına bir alan ekler. Anahtar yoksa oluşturur. Alan zaten varsa alan değerini üzerine yazar. |
| EXHMSET | EXHMSET key field value [field value ...] |
Belirtilen TairHash anahtarına birden çok alan ekler. Anahtar yoksa oluşturur. Mevcut alan değerlerinin üzerine yazar. |
| EXHINCRBY | EXHINCRBY key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL] |
Bir alanın tamsayı değerini num kadar artırır. Anahtar veya alan yoksa oluşturur (artırmadan önce alan 0'dan başlar). |
| EXHINCRBYFLOAT | EXHINCRBYFLOAT key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL] |
Bir alanın kayan nokta değerini num kadar artırır. Anahtar veya alan yoksa oluşturur (artırmadan önce alan 0'dan başlar). |
Son kullanma süresi komutları
| Komut | Sözdizimi | Açıklama |
|---|---|---|
| EXHEXPIRE | EXHEXPIRE key field seconds [VER | ABS version] |
Bir alan için saniye cinsinden göreli bir son kullanma süresi ayarlar. |
| EXHPEXPIRE | EXHPEXPIRE key field milliseconds [VER | ABS version] |
Bir alan için milisaniye cinsinden göreli bir son kullanma süresi ayarlar. |
| EXHEXPIREAT | EXHEXPIREAT key field timestamp [VER | ABS version] |
Bir alan için mutlak bir son kullanma süresi (saniye cinsinden UNIX zaman damgası) ayarlar. |
| EXHPEXPIREAT | EXHPEXPIREAT key field milliseconds-timestamp [VER | ABS version] |
Bir alan için mutlak bir son kullanma süresi (milisaniye cinsinden UNIX zaman damgası) ayarlar. |
Okuma komutları
| Komut | Sözdizimi | Açıklama |
|---|---|---|
| EXHGET | EXHGET key field |
Bir alanın değerini alır. Anahtar veya alan yoksa nil döndürür. |
| EXHMGET | EXHMGET key field [field ...] |
Birden çok alanın değerlerini alır. Var olmayan alanlar için nil döndürür. |
| EXHGETWITHVER | EXHGETWITHVER key field |
Bir alanın değerini ve sürüm numarasını alır. Anahtar veya alan yoksa nil döndürür. |
| EXHMGETWITHVER | EXHMGETWITHVER key field [field ...] |
Birden çok alanın değerlerini ve sürüm numaralarını alır. |
| EXHTTL | EXHTTL key field |
Bir alanın kalan TTL süresini saniye cinsinden alır. |
| EXHPTTL | EXHPTTL key field |
Bir alanın kalan TTL süresini milisaniye cinsinden alır. |
| EXHVER | EXHVER key field |
Bir alanın mevcut sürüm numarasını alır. |
| EXHLEN | EXHLEN key [NOEXP] |
Anahtardaki alan sayısını alır. Yalnızca süresi dolmamış alanları saymak için NOEXP belirtin. |
| EXHEXISTS | EXHEXISTS key field |
Bir alanın var olup olmadığını kontrol eder. |
| EXHSTRLEN | EXHSTRLEN key field |
Bir alanın değer dizesinin uzunluğunu alır. |
| EXHKEYS | EXHKEYS key |
Anahtardaki tüm alanları alır. |
| EXHVALS | EXHVALS key |
Anahtardaki tüm alan değerlerini alır. |
| EXHGETALL | EXHGETALL key |
Anahtardaki tüm alanları ve değerleri alır. |
| EXHSCAN | EXHSCAN key op subkey [MATCH pattern] [COUNT count] |
Anahtarı yinelemeli olarak tarar. Yalnızca bellek iyileştirmeli örneklerde kullanılabilir. |
Sürüm komutları
| Komut | Sözdizimi | Açıklama |
|---|---|---|
| EXHSETVER | EXHSETVER key field version |
Bir alanın sürüm numarasını ayarlar. |
Silme komutları
| Komut | Sözdizimi | Açıklama |
|---|---|---|
| EXHDEL | EXHDEL key field [field ...] |
Anahtardan bir veya daha fazla alanı siler. |
| DEL | DEL key [key ...] |
Yerel Redis DEL komutunu kullanarak bir veya daha fazla TairHash anahtarını siler. |
Sözdizimi kuralları
| Kural | Anlam |
|---|---|
BÜYÜK HARF ANAHTAR KELİME |
Komut anahtar kelimesi |
_italik_ |
Değişken |
[seçenek] |
İsteğe bağlı parametre |
A|B |
Karşılıklı özel — yalnızca birini belirtin |
... |
Parametre tekrarlanabilir |
EXHSET
time complexity| **Sözdizimi** | **EXHSET key field value [EX time] [EXAT time] [PX time] [PXAT time] [NX | XX] [VER | ABS version] [KEEPTTL]** |
|---|---|
| O(1) | |
| Açıklama | Belirtilen TairHash anahtarına bir alan ekler. Anahtar yoksa oluşturur. Alan zaten varsa alan değerini üzerine yazar. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
key |
TairHash anahtarı. |
field |
Ayarlanacak alan. |
value |
Alanın değeri. |
EX time |
Saniye cinsinden göreli son kullanma süresi. 0 alanın hemen süresinin dolacağı anlamına gelir. Son kullanma süresi ayarlamamak için bu seçeneği atlayın. |
EXAT time |
Saniye cinsinden UNIX zaman damgası olarak mutlak son kullanma süresi. 0 alanın hemen süresinin dolacağı anlamına gelir. |
PX time |
Milisaniye cinsinden göreli son kullanma süresi. 0 alanın hemen süresinin dolacağı anlamına gelir. |
PXAT time |
Milisaniye cinsinden UNIX zaman damgası olarak mutlak son kullanma süresi. 0 alanın hemen süresinin dolacağı anlamına gelir. |
NX |
Alan henüz mevcut değilse ayarlar. |
XX |
Alan zaten mevcutsa ayarlar. |
VER version |
İyimser eşzamanlılık kontrolü. Alan mevcutsa ve mevcut sürümü version ile eşleşiyorsa işlem devam eder ve sürüm 1 artırılır. Sürümler farklıysa hata döndürülür. Alan mevcut değilse veya sürümü 0 ise kontrol atlanır ve işlemden sonra sürüm 1 olur. |
ABS version |
Mevcut sürümden bağımsız olarak sürümü tam bir değere ayarlar. |
KEEPTTL |
EX, EXAT, PX veya PXAT belirtmediğinizde alanın mevcut son kullanma süresini korur. KEEPTTL olmadan EXHSET mevcut son kullanma süresini temizler. |
Bir alan için zaman aşımı ayarladıktan sonra, zaman aşımı seçeneği olmadan tekrar EXHSET çalıştırmak son kullanma süresini temizler (KEEPTTLkullanmadığınız sürece). Anahtarın kendisinde son kullanma süresi ayarlamak için yerelEXPIREveyaEXPIREATkomutunu kullanın.
Dönüş değerleri
| Değer | Anlam |
|---|---|
1 |
Yeni bir alan oluşturuldu. |
0 |
Alan mevcuttu ve değeri üzerine yazıldı. |
-1 |
XX belirtildi ancak alan mevcut değil veya NX belirtildi ancak alan zaten mevcut. |
"ERR update version is stale" |
VER belirtildi ve sürüm mevcut sürümle eşleşmiyor. |
Örnek
EXHSET myhash field1 val EX 10
(integer) 1
EXHGET
| **Sözdizimi** | **EXHGET key field** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın değerini alır. Anahtar veya alan yoksa nil döndürür. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Alan değeri | Alan mevcut. |
nil |
Anahtar veya alan mevcut değil. |
Örnek
EXHSET myhash field1 val
EXHGET myhash field1
"val"
EXHMSET
| **Sözdizimi** | **EXHMSET key field value [field value ...]** |
|---|---|
| Zaman karmaşıklığı | O(N), burada N alan sayısıdır |
| Açıklama | Belirtilen TairHash anahtarına birden çok alan ekler. Anahtar yoksa oluşturur. Mevcut alan değerlerinin üzerine yazar. |
Oluşturulduktan sonra tek tek alanlarda son kullanma süresi ayarlamak için EXHEXPIRE, EXHPEXPIRE, EXHEXPIREAT veya EXHPEXPIREAT kullanın. Anahtarın kendisinde son kullanma süresi ayarlamak için yerelEXPIREveyaEXPIREATkomutunu kullanın.
Dönüş değerleri
| Değer | Anlam |
|---|---|
OK |
İşlem başarılı. |
Örnek
EXHMSET myhash field1 val1 field2 val2
OK
EXHEXPIRE
| **Sözdizimi** | **EXHEXPIRE key field seconds [VER | ABS version]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alan için saniye cinsinden göreli bir son kullanma süresi ayarlar. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
key |
TairHash anahtarı. |
field |
Son kullanma süresi ayarlanacak alan. |
seconds |
Saniye cinsinden göreli son kullanma süresi. |
VER version |
EXHSET'tekiyle aynı iyimser eşzamanlılık davranışı. |
ABS version |
Mevcut sürümden bağımsız olarak sürümü tam bir değere ayarlar. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
1 |
Alan mevcut ve son kullanma süresi ayarlandı. |
0 |
Alan mevcut değil. |
Örnek
EXHSET myhash field1 val
EXHEXPIRE myhash field1 100
(integer) 1
EXHPEXPIRE
| **Sözdizimi** | **EXHPEXPIRE key field milliseconds [VER | ABS version]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alan için milisaniye cinsinden göreli bir son kullanma süresi ayarlar. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
key |
TairHash anahtarı. |
field |
Son kullanma süresi ayarlanacak alan. |
milliseconds |
Milisaniye cinsinden göreli son kullanma süresi. |
VER version |
EXHSET'tekiyle aynı iyimser eşzamanlılık davranışı. |
ABS version |
Mevcut sürümden bağımsız olarak sürümü tam bir değere ayarlar. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
1 |
Alan mevcut ve son kullanma süresi ayarlandı. |
0 |
Alan mevcut değil. |
Örnek
EXHSET myhash field1 val
EXHPEXPIRE myhash field1 1000
(integer) 1
EXHEXPIREAT
| **Sözdizimi** | **EXHEXPIREAT key field timestamp [VER | ABS version]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alan için mutlak bir son kullanma süresi (saniye cinsinden UNIX zaman damgası) ayarlar. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
key |
TairHash anahtarı. |
field |
Son kullanma süresi ayarlanacak alan. |
timestamp |
Saniye cinsinden mutlak UNIX zaman damgası. |
VER version |
EXHSET'tekiyle aynı iyimser eşzamanlılık davranışı. |
ABS version |
Mevcut sürümden bağımsız olarak sürümü tam bir değere ayarlar. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
1 |
Alan mevcut ve son kullanma süresi ayarlandı. |
0 |
Alan mevcut değil. |
Örnek
EXHEXPIREAT myhash field1 1293840000
(integer) 1
EXHPEXPIREAT
| **Sözdizimi** | **EXHPEXPIREAT key field milliseconds-timestamp [VER | ABS version]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alan için mutlak bir son kullanma süresi (milisaniye cinsinden UNIX zaman damgası) ayarlar. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
key |
TairHash anahtarı. |
field |
Son kullanma süresi ayarlanacak alan. |
milliseconds-timestamp |
Milisaniye cinsinden mutlak UNIX zaman damgası. |
VER version |
EXHSET'tekiyle aynı iyimser eşzamanlılık davranışı. |
ABS version |
Mevcut sürümden bağımsız olarak sürümü tam bir değere ayarlar. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
1 |
Alan mevcut ve son kullanma süresi ayarlandı. |
0 |
Alan mevcut değil. |
Örnek
EXHPEXPIREAT myhash field1 1293840000000
(integer) 1
EXHTTL
| **Sözdizimi** | **EXHTTL key field** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın kalan TTL süresini saniye cinsinden alır. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Pozitif tamsayı | Saniye cinsinden kalan TTL. |
-1 |
Alan mevcut ancak son kullanma süresi ayarlanmamış. |
-2 |
Anahtar mevcut değil. |
-3 |
Alan mevcut değil. |
Örnek
Aşağıdaki örnek, tek bir dizide olası tüm dönüş durumlarını gösterir: TTL ayarlanmış bir alan (85) ve son kullanma süresi olmayan bir alan (-1).
EXHSET myhash field1 val1 EX 100
EXHSET myhash field2 val2
EXHTTL myhash field1
EXHTTL myhash field2
EXHTTL myhash field3
(integer) 85
(integer) -1
(integer) -3
EXHPTTL
| **Sözdizimi** | **EXHPTTL key field** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın kalan TTL süresini milisaniye cinsinden alır. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Pozitif tamsayı | Milisaniye cinsinden kalan TTL. |
-1 |
Alan mevcut ancak son kullanma süresi ayarlanmamış. |
-2 |
Anahtar mevcut değil. |
-3 |
Alan mevcut değil. |
Örnek
EXHSET myhash field1 val1 EX 100
EXHPTTL myhash field1
(integer) 97213
EXHVER
| **Sözdizimi** | **EXHVER key field** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın mevcut sürüm numarasını alır. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Pozitif tamsayı | Mevcut sürüm numarası. |
-1 |
Anahtar mevcut değil. |
-2 |
Alan mevcut değil. |
Örnek
EXHVER myhash field1
(integer) 1
EXHSETVER
| **Sözdizimi** | **EXHSETVER key field version** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın sürüm numarasını tam bir değere ayarlar. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
1 |
Sürüm ayarlandı. |
0 |
Anahtar veya alan mevcut değil. |
Örnek
EXHSETVER myhash field1 3
(integer) 1
EXHINCRBY
| **Sözdizimi** | **EXHINCRBY key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın tamsayı değerini num kadar artırır. Anahtar veya alan yoksa oluşturur; yeni bir alan artırmadan önce 0 değerinden başlar. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
key |
TairHash anahtarı. |
field |
Artırılacak alan. |
num |
Tamsayı artış değeri. |
EX, EXAT, PX, PXAT |
EXHSET'tekiyle aynı. |
VER version |
EXHSET'tekiyle aynı iyimser eşzamanlılık davranışı. |
ABS version |
Mevcut sürümden bağımsız olarak sürümü tam bir değere ayarlar. |
MIN minval |
İzin verilen minimum değer. Sonuç minval değerinden düşük olursa hata döndürür. |
MAX maxval |
İzin verilen maksimum değer. Sonuç maxval değerini aşarsa hata döndürür. |
KEEPTTL |
Alanın mevcut son kullanma süresini korur. EXHSET'tekiyle aynı davranış. |
Bir alan için zaman aşımı ayarladıktan sonra, zaman aşımı seçeneği olmadan tekrar EXHINCRBY çalıştırmak son kullanma süresini temizler ( KEEPTTL kullanmadığınız sürece).
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Tamsayı | Artırımdan sonraki yeni değer. |
Örnek
EXHMSET myhash field1 10
EXHINCRBY myhash field1 100
(integer) 110
EXHINCRBYFLOAT
| **Sözdizimi** | **EXHINCRBYFLOAT key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın kayan nokta değerini num kadar artırır. Anahtar veya alan yoksa oluşturur; yeni bir alan artırmadan önce 0 değerinden başlar. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
key |
TairHash anahtarı. |
field |
Artırılacak alan. |
num |
Kayan nokta artış değeri. |
EX, EXAT, PX, PXAT |
EXHSET'tekiyle aynı. |
VER version |
EXHSET'tekiyle aynı iyimser eşzamanlılık davranışı. |
ABS version |
Mevcut sürümden bağımsız olarak sürümü tam bir değere ayarlar. |
MIN minval |
İzin verilen minimum değer. Sonuç minval değerinden düşük olursa hata döndürür. |
MAX maxval |
İzin verilen maksimum değer. Sonuç maxval değerini aşarsa hata döndürür. |
KEEPTTL |
Alanın mevcut son kullanma süresini korur. EXHSET'tekiyle aynı davranış. |
Bir alan için zaman aşımı ayarladıktan sonra, zaman aşımı seçeneği olmadan tekrar EXHINCRBYFLOAT çalıştırmak son kullanma süresini temizler ( KEEPTTL kullanmadığınız sürece).
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Kayan nokta dizesi | Artırımdan sonraki yeni değer. |
Örnek
EXHMSET myhash field1 10
EXHINCRBYFLOAT myhash field1 9.235
"19.235"
EXHGETWITHVER
| **Sözdizimi** | **EXHGETWITHVER key field** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın değerini ve sürüm numarasını alır. Anahtar veya alan yoksa nil döndürür. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
[value, version] dizisi |
Alan mevcut. |
nil |
Anahtar veya alan mevcut değil. |
Örnek
EXHGETWITHVER myhash field1
1) "19.235"
2) (integer) 5
EXHMGET
| **Sözdizimi** | **EXHMGET key field [field ...]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Birden çok alanın değerlerini alır. Var olmayan alanlar için nil döndürür. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
nil |
Anahtar mevcut değil. |
| Değer dizisi | İstenen alan başına bir öğe; var olmayan alanlar için nil. |
Örnek
EXHMSET myhash field1 10 field2 var1
EXHMGET myhash field1 field2
1) "10"
2) "var1"
EXHMGETWITHVER
| **Sözdizimi** | **EXHMGETWITHVER key field [field ...]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Birden çok alanın değerlerini ve sürüm numaralarını alır. Var olmayan alanlar için nil döndürür. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
nil |
Anahtar mevcut değil. |
[value, version] çiftlerinden oluşan dizi |
İstenen alan başına bir öğe; var olmayan alanlar için nil. |
Örnek
EXHMSET myhash field1 10 field2 var1
EXHMGETWITHVER myhash field1 field2
1) 1) "10"
2) (integer) 1
2) 1) "var1"
2) (integer) 1
EXHLEN
| **Sözdizimi** | **EXHLEN key [NOEXP]** |
|---|---|
| Zaman karmaşıklığı | NOEXP olmadan O(1); NOEXP ile O(N) |
| Açıklama | Anahtardaki alan sayısını alır. Varsayılan olarak, süresi dolmuş ancak henüz silinmemiş alanları içerir. Yalnızca süresi dolmamış alanları saymak için NOEXP kullanın. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
NOEXP |
Tüm anahtarı tarar ve saymadan önce süresi dolmuş alanları filtreler. NOEXP alanları sayımdan çıkarır ancak onları evikte etmez (silmez). Yanıt süresi anahtar boyutuyla orantılı olarak artar. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Tamsayı | Alan sayısı (NOEXP olmadan süresi dolmuş ancak silinmemiş alanları içerebilir). |
0 |
Anahtar mevcut değil. |
Örnek
EXHLEN myhash
(integer) 2
EXHEXISTS
| **Sözdizimi** | **EXHEXISTS key field** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Anahtarda bir alanın var olup olmadığını kontrol eder. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
1 |
Alan mevcut. |
0 |
Anahtar veya alan mevcut değil. |
Örnek
EXHEXISTS myhash field1
(integer) 1
EXHSTRLEN
| **Sözdizimi** | **EXHSTRLEN key field** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Bir alanın değer dizesinin uzunluğunu alır. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Pozitif tamsayı | Dize uzunluğu. |
0 |
Anahtar veya alan mevcut değil. |
Örnek
EXHSTRLEN myhash field1
(integer) 2
EXHKEYS
| **Sözdizimi** | **EXHKEYS key** |
|---|---|
| Zaman karmaşıklığı | O(N) |
| Açıklama | Anahtardaki tüm alanları alır. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Alan adları dizisi | Anahtar mevcut. |
| Boş dizi | Anahtar mevcut değil. |
Örnek
EXHMSET myhash field1 10 field2 var1
EXHKEYS myhash
1) "field1"
2) "field2"
EXHVALS
| **Sözdizimi** | **EXHVALS key** |
|---|---|
| Zaman karmaşıklığı | O(N) |
| Açıklama | Anahtardaki tüm alan değerlerini alır. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Değerler dizisi | Anahtar mevcut. |
| Boş dizi | Anahtar mevcut değil. |
Örnek
EXHMSET myhash field1 10 field2 var1
EXHVALS myhash
1) "10"
2) "var1"
EXHGETALL
| **Sözdizimi** | **EXHGETALL key** |
|---|---|
| Zaman karmaşıklığı | O(N) |
| Açıklama | Anahtardaki tüm alanları ve değerlerini alır. Yanıt, alan adları ve değerleri arasında sırayla değişir. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
| Alan-değer çiftleri dizisi | Anahtar mevcut. |
| Boş dizi | Anahtar mevcut değil. |
Örnek
EXHMSET myhash field1 10 field2 var1
EXHGETALL myhash
1) "field1"
2) "10"
3) "field2"
4) "var1"
EXHSCAN
| **Sözdizimi** | **EXHSCAN key op subkey [MATCH pattern] [COUNT count]** |
|---|---|
| Zaman karmaşıklığı | Çağrı başına O(1); tam tarama için O(N) |
| Açıklama | Anahtarı yinelemeli olarak tarar ve bir imleç ile bir alan-değer çifti grubu döndürür. Yalnızca bellek iyileştirmeli örneklerde kullanılabilir. |
Seçenekler
| Seçenek | Açıklama |
|---|---|
key |
TairHash anahtarı. |
op |
Taramanın başlangıç konumu. Geçerli değerler aşağıda belirtilmiştir. |
subkey |
op ile kullanılan referans alanı. op ^ veya $ olduğunda yoksayılır. |
MATCH pattern |
Alan adlarına uygulanan bir düzenli ifade deseniyle sonuçları filtreler. |
COUNT count |
Çağrı başına taranacak alan sayısı. Varsayılan olarak 10. Sonuçların gerçek sayısı, anahtar boyutuna ve MATCH uygulanıp uygulanmadığına bağlı olarak değişebilir. |
Geçerli op değerleri
| Değer | Başlangıç konumu |
|---|---|
> |
subkey değerinden büyük ilk alan |
>= |
subkey değerinden büyük veya ona eşit ilk alan |
< |
subkey değerinden küçük ilk alan |
<= |
subkey değerinden küçük veya ona eşit ilk alan |
== |
subkey değerine eşit ilk alan |
^ |
Anahtardaki ilk alan |
$ |
Anahtardaki son alan |
Dönüş değerleri
Yanıt, iki öğeden oluşan bir dizidir:
Sonraki tarama çağrısı için başlangıç alanı. Tarama tamamlandığında boştur.
Taranan alanlar ve değerleri,
[field, value, field, value, ...]şeklinde serpiştirilmiş olarak.
Anahtar mevcut değilse boş bir dizi döndürür.
Örnek
EXHMSET myhashkey field1 val1 field2 val2 field3 val3 field4 val4 field5 val5
EXHSCAN myhashkey ^ xx COUNT 3
1) "field4"
2) 1) "field1"
2) "val1"
3) "field2"
4) "val2"
5) "field3"
6) "val3"
Sonraki tarama field4 değerinden başlar. Devam etmek için op >= ile subkey olarak field4 değerini iletin.
EXHDEL
| **Sözdizimi** | **EXHDEL key field [field ...]** |
|---|---|
| Zaman karmaşıklığı | O(1) |
| Açıklama | Anahtardan bir veya daha fazla alanı siler. |
Dönüş değerleri
| Değer | Anlam |
|---|---|
1 |
Alan silindi. |
0 |
Anahtar veya alan mevcut değil. |
Örnek
EXHDEL myhash field1
(integer) 1
SSS
Neden exHash, aynı veriler için standart bir Redis hash'inden daha fazla bellek kullanır?
TairHash'teki her alan, standart bir Redis hash'in sahip olmadığı ek meta verileri — son kullanma zaman damgası ve sürüm numarası — saklar. Bu alan başına ek meta veriler, daha yüksek bellek kullanımının kaynağıdır.