Redis SCARD

Redis Scard



„A Redis készletek olyan karakterláncok rendezetlen gyűjteményei, amelyek nem tartalmaznak ismétlődést. Ezek nagyon hasonlítanak a Java HashSet-ekre, Python-készletekre stb. A legfontosabb, hogy az olyan alapvető műveletek, mint a tagok hozzáadása, eltávolítása és létezésének ellenőrzése, rendkívül hatékonyak, mivel O(1) időbeli összetettségben működnek.

Egy halmaz tagjai

Mint említettük, a Redis készletek egyedi karakterláncelemeket tartalmaznak. A már meglévő elemeket a Redis-készletek nem fogadják el, és figyelmen kívül hagyják őket. Ezenkívül egyetlen készlet akár 4 milliárd egyedi húrt is tartalmazhat.









A Redis készlet egyedi tagokat tartalmazó jellege számos valós felhasználási esetben hasznos.



  • Képes szabványos halmazműveletek végrehajtására, mint például az egyesülés, metszéspont és különbség.
  • Egy webhely egyedi látogatóinak nyomon követése
  • Jelenítse meg a való világ entitáskapcsolatait

A SCARD parancs

A SCARD parancs, a Set Cardinality rövidítése, egy adott kulcson tárolt halmaz tagjainak számát adja vissza. O(1) időbonyolításban működik, ami azt jelenti, hogy a SCARD parancs végrehajtásához szükséges idő nem függ az adott halmazban lévő tagok számától. Mindig állandó idő kell hozzá.





A SCARD parancs szintaxisa nagyon egyszerű, amint azt az alábbiakban bemutatjuk.

SCARD set_key

set_key: A Redis készlet kulcsa



Ez a parancs egy egész értéket ad vissza, amely a halmaz tagjainak száma.

Használati eset – Számolja meg a webhely egyedi látogatóit

Tételezzük fel, hogy egy „YummyPizza” pizzagyártó cég fenntart egy yummypizza.com nevű webhelyet, ahol az emberek online rendelhetnek pizzát. Eladásaik és vásárlói bázisuk nyomon követése érdekében Redis adatbázist vezetnek, amely minden hónapban tárolja a webhely összes egyedi látogatóját.

Amikor egy felhasználó felkeresi a YummyPizza webhelyet, a felhasználói azonosítót hozzá kell adni a Redis adatbázishoz. Ezenkívül ugyanazt a felhasználót nem szabad hozzáadni az adatbázishoz. Tehát az ideális adatstruktúra a Redis halmaz, ahol a készletek csak egyedi tagokat tárolnak.

Tételezzük fel, hogy öt felhasználó kereste fel a webhelyet, és ezek a tagok felkerülnek a Redis adatbázisába, ahogy az alábbiakban látható.

SADD YummyPizza Látogatók: október John Mary Raza Stoinis Prince

Ahogy az várható volt, az 5-ös egész szám került visszaadásra, ami azt jelenti, hogy az öt tag hozzáadódik a ' kulcson tárolt halmazhoz FincsiPizza Látogatók: Október.

A nap végén a vállalati adminisztrátoroknak ellenőrizniük kell a webhely egyedi látogatóinak számát. Tehát ki kell számítani a halmaz számosságát. Szerencsére a korábban tárgyalt SCARD parancs jól jön az ilyen típusú forgatókönyvekben.

Végezzük el a SCARD parancsot a ' kulcsnál tárolt halmazon FincsiPizza Látogatók: Október.

scard YummyPizzaLátogatók:október

A kimenet 5, ami azt jelenti, hogy öt egyedi tag van a megadott készletben. Ez a parancs túl gyorsan fut. Nem számít öt tag vagy 50 000 tag; a végrehajtási idő állandó lesz.

Tegyük fel, hogy a megadott set kulcs nem létezik a Redis adatbázisban. Ekkor a kimenet 0 lesz, amint az a következő példában látható. Ebben az esetben olyan kulcsot fogunk megadni, amely nem szerepel az adatbázisban.

scard NonExistingKey

Következtetés

Összefoglalva, a Redis készlet ideális jelölt egyedi karakterláncok tárolására. Amint már említettük, a Redis set-ben a legfontosabb az, hogy a legtöbb kapcsolódó halmazművelet végrehajtása állandó időt vesz igénybe. A SCARD parancs az egyik leggyakrabban használt set parancs az adott kulcson tárolt adott halmazhoz tartozó halmaztagok teljes számának kiszámításához. Nem számít, hány halmaztag áll rendelkezésre, ennek a parancsnak állandó időbe telik a kimenet biztosítása. Ahogy az utolsó példában is látható, ha a set gomb nem létezik, akkor a kimenet 0 lesz.