Redis SCARD

Redis Scard



Redis kümeleri, yineleme içermeyen sırasız dize koleksiyonlarıdır. Bunlar, Java HashSets, Python Sets, vs.'ye çok benzer. En önemlisi, bir üyenin eklenmesi, çıkarılması ve varlığının kontrol edilmesi gibi temel işlemler, O(1) zaman karmaşıklığında çalıştıkları için oldukça verimlidir.”

Bir Kümenin Üyeleri

Bahsedildiği gibi, Redis setleri benzersiz dizi öğeleri içerir. Halihazırda var olan öğeler Redis setleri tarafından kabul edilmeyecek ve yok sayılacaktır. Ayrıca, tek bir set 4 milyara kadar benzersiz diziyi tutabilir.









Redis setinin benzersiz üyeleri tutma doğası, gerçek dünyadaki birçok kullanım durumunda kullanışlıdır.



  • Birleşim, Kesişme ve Fark gibi standart küme işlemlerini gerçekleştirme yeteneği.
  • Bir web sitesine gelen benzersiz ziyaretçileri izleme
  • Gerçek dünyadaki varlık ilişkilerini temsil eder

SCARD Komutu

Set Cardinality'nin kısaltması olan SCARD komutu, belirli bir anahtarda saklanan bir kümedeki üye sayısını döndürür. O(1) zaman karmaşıklığında çalışır; bu, SCARD komutunun yürütülmesi için geçen sürenin verilen kümedeki üye sayısına bağlı olmadığı anlamına gelir. Her zaman sabit bir zaman alır.





SCARD komutu aşağıda gösterildiği gibi çok basit bir sözdizimine sahiptir.

SCARD set_key

ayar tuşu: Redis setinin anahtarı



Bu komut, kümedeki üye sayısı olan bir tamsayı değeri döndürür.

Kullanım Örneği – Bir Web Sitesinin Tekil Ziyaretçilerini Sayma

Bir 'YummyPizza' pizza şirketinin, insanların çevrimiçi pizza sipariş edebilecekleri yummypizza.com adlı bir web sitesine sahip olduğunu varsayalım. Satışlarını ve müşteri tabanlarını takip etmek için, her ay web sitesine gelen tüm benzersiz ziyaretçileri depolamak için bir Redis veri tabanı bulundururlar.

Bir kullanıcı YummyPizza web sitesini her ziyaret ettiğinde, kullanıcı kimliği Redis veritabanına eklenmelidir. Ayrıca veritabanına aynı kullanıcı eklenmemelidir. Dolayısıyla ideal veri yapısı, kümelerin yalnızca benzersiz üyeleri depoladığı Redis kümesidir.

Beş kullanıcının siteyi ziyaret ettiğini varsayalım ve bu üyeler aşağıda gösterildiği gibi Redis veri tabanına eklenmiş olsun.

SADD YummyPizzaZiyaretçiler:Ekim John Mary Raza Stoinis Prince

Beklendiği gibi, 5 tamsayı döndürüldü, bu, beş üyenin “ anahtarında saklanan kümeye eklendiği anlamına gelir. Nefis PizzaZiyaretçiler: Ekim.

Günün sonunda, şirket yöneticilerinin web sitesine gelen toplam tekil ziyaretçi sayısını kontrol etmesi gerekir. Bu nedenle, Set kardinalitesinin hesaplanması gerekir. Neyse ki, daha önce tartışılan SCARD komutu bu tür senaryolarda işe yarar.

“” anahtarında saklanan set üzerinde SCARD komutunu çalıştıralım. Nefis PizzaZiyaretçiler: Ekim.

Scard YummyPizzaZiyaretçiler:Ekim

Çıktı 5'tir, yani belirtilen kümede beş benzersiz üye vardır. Bu komut çok hızlı yürütülür. Beş üye veya 50000 üye farketmez; yürütme süresi sabit olacaktır.

Belirtilen set anahtarının Redis veritabanında bulunmadığını varsayalım. Ardından, aşağıdaki örnekte gösterildiği gibi çıkış 0 olacaktır. Bu durumda, veritabanında olmayan bir anahtar belirleyeceğiz.

Scard Var Olmayan Anahtar

Çözüm

Özetlemek gerekirse, Redis seti benzersiz dizileri depolamak için ideal bir adaydır. Tartışıldığı gibi, Redis seti ile ilgili en önemli şey, ilişkili set işlemlerinin çoğunun yürütülmesinin sabit bir süre almasıdır. SCARD komutu, belirli bir anahtarda saklanan belirli bir küme için küme üyelerinin toplam sayısını hesaplamak için en çok kullanılan küme komutlarından biridir. Kaç set üyesi mevcut olursa olsun, bu komutun çıktıyı sağlaması sabit zaman alır. Son örnekte görüldüğü gibi set tuşu yoksa çıkış 0 olacaktır.