Redis SCARD

Redis Scard



'Redis-joukot ovat järjestämättömiä merkkijonokokoelmia, jotka eivät sisällä kaksoiskappaleita. Nämä ovat hyvin samankaltaisia ​​kuin Java HashSets, Python Sets jne. Mikä tärkeintä, perustoiminnot, kuten jäsenen lisääminen, poistaminen ja olemassaolon tarkistaminen, ovat erittäin tehokkaita, koska ne toimivat O(1)-ajassa.'

Sarjan jäsenet

Kuten mainittiin, Redis-sarjat sisältävät ainutlaatuisia merkkijonokohteita. Redis-joukot eivät hyväksy jo olemassa olevia kohteita, ja ne ohitetaan. Lisäksi yhteen sarjaan mahtuu jopa 4 miljardia ainutlaatuista merkkijonoa.









Redis-sarjan luonne pitää sisällään ainutlaatuisia jäseniä on hyödyllinen useissa tosielämän käyttötapauksissa.



  • Kyky suorittaa standardijoukkotoimintoja, kuten liitos, leikkaus ja ero.
  • Sivuston yksittäisten vierailijoiden seuranta
  • Edustaa reaalimaailman entiteettisuhteita

SCARD-komento

SCARD-komento, lyhenne sanoista Set Cardinality, palauttaa tiettyyn avaimeen tallennetun joukon jäsenten määrän. Se toimii O(1)-aikakompleksisuudessa, mikä tarkoittaa, että SCARD-komennon suorittamiseen kuluva aika ei riipu tietyn joukon jäsenten lukumäärästä. Se vie aina jatkuvan ajan.





SCARD-komennolla on hyvin yksinkertainen syntaksi, kuten seuraavassa esitetään.

SCARD set_key

set_key: Redis-setin avain



Tämä komento palauttaa kokonaisluvun, joka on joukon jäsenten lukumäärä.

Käyttötapaus – Laske verkkosivuston yksittäiset vierailijat

Oletetaan, että 'YummyPizza' pizzayhtiö ylläpitää verkkosivustoa nimeltä yummypizza.com, josta ihmiset voivat tilata pizzaa verkosta. Seuratakseen myyntiään ja asiakaskuntaansa he ylläpitävät Redis-tietokantaa, joka tallentaa kaikki verkkosivuston yksittäiset vierailijat kuukausittain.

Aina kun käyttäjä vierailee YummyPizza-sivustolla, käyttäjätunnus tulee lisätä Redis-tietokantaan. Samaa käyttäjää ei myöskään pidä lisätä tietokantaan. Joten ihanteellinen tietorakenne on Redis-joukko, jossa joukot tallentavat vain yksilöllisiä jäseniä.

Oletetaan, että sivustolla on vieraillut viisi käyttäjää ja nämä jäsenet on lisätty Redis-tietokantaan, kuten seuraavassa näkyy.

SADD YummyPizza Vierailijat: Lokakuu John Mary Raza Stoinis Prince

Kuten odotettiin, kokonaisluku 5 on palautettu, mikä tarkoittaa, että viisi jäsentä lisätään avaimeen tallennettuun joukkoon YummyPizzaVisitors: Lokakuu.

Päivän päätteeksi yrityksen järjestelmänvalvojien on tarkistettava verkkosivuston yksittäisten vierailijoiden kokonaismäärä. Joten sarjan kardinaliteetti on laskettava. Onneksi aiemmin käsitelty SCARD-komento on hyödyllinen tämän tyyppisissä skenaarioissa.

Suoritetaan SCARD-komento avaimeen ' YummyPizzaVisitors: Lokakuu.

scard YummyPizzaVisitors:Lokakuu

Tulos on 5, mikä tarkoittaa, että määritetyssä joukossa on viisi yksilöllistä jäsentä. Tämä komento suoritetaan liian nopeasti. Viidellä jäsenellä tai 50 000 jäsenellä ei ole väliä; suoritusaika on vakio.

Oletetaan, että määritettyä set-avainta ei ole Redis-tietokannassa. Tällöin lähtö on 0, kuten seuraavassa esimerkissä näkyy. Tässä tapauksessa aiomme määrittää avaimen, joka ei ole tietokannassa.

scard NonExistingKey

Johtopäätös

Yhteenvetona voidaan todeta, että Redis-setti on ihanteellinen ehdokas ainutlaatuisten merkkijonojen tallentamiseen. Kuten mainittiin, Redis-sarjan tärkein asia on, että useimpien siihen liittyvien joukkotoimintojen suorittaminen vie jatkuvasti aikaa. SCARD-komento on yksi eniten käytetyistä set-komennoista määritetylle avaimelle tallennettujen tietyn joukon jäsenten kokonaismäärän laskemiseksi. Riippumatta siitä, kuinka monta joukon jäsentä on käytettävissä, tämä komento vie jatkuvasti aikaa tuottaakseen lähdön. Kuten edellisessä esimerkissä näkyy, jos asetusnäppäintä ei ole olemassa, tulos on 0.