Redis SCARD

Redis Scard



“Ang mga set ng Redis ay hindi nakaayos na mga koleksyon ng mga string na walang mga duplicate. Ang mga ito ay halos kapareho sa Java HashSets, Python Sets, atbp. Pinakamahalaga, ang mga pangunahing operasyon tulad ng pagdaragdag, pag-alis, at pagsuri sa pagkakaroon ng isang miyembro ay lubos na mahusay dahil gumagana ang mga ito sa O(1) time complexity.”

Mga miyembro ng isang Set

Gaya ng nabanggit, ang mga Redis set ay naglalaman ng mga natatanging string item. Ang mga dati nang item ay hindi tatanggapin ng Redis set at hindi papansinin. Higit pa rito, ang isang solong set ay maaaring maglaman ng hanggang 4 bilyong natatanging mga string.









Ang likas na katangian ng Redis set ng pagkakaroon ng mga natatanging miyembro ay madaling gamitin sa ilang real-world na mga kaso ng paggamit.



  • Kakayahang magsagawa ng mga karaniwang set na operasyon tulad ng Union, Intersection, at Difference.
  • Pagsubaybay sa mga natatanging bisita sa isang website
  • Kinakatawan ang mga relasyon sa totoong mundo

Ang Utos ng SCARD

Ang SCARD command, maikli para sa Set Cardinality, ay nagbabalik ng bilang ng mga miyembro sa isang set na nakaimbak sa isang ibinigay na key. Gumagana ito sa O(1) time complexity na nangangahulugang ang oras na kailangan ng SCARD command upang maisakatuparan ay hindi umaasa sa bilang ng mga miyembro sa ibinigay na set. Ito ay palaging tumatagal ng isang pare-parehong oras.





Ang SCARD command ay may napakasimpleng syntax, tulad ng ipinapakita sa sumusunod.

SCARD set_key

set_key: Ang susi ng set ng Redis



Ang utos na ito ay nagbabalik ng isang integer na halaga na kung saan ay ang bilang ng mga miyembro sa set.

Use Case – Bilangin ang Mga Natatanging Bisita sa isang Website

Ipagpalagay na ang isang 'YummyPizza' na kumpanya ng pizza ay nagpapanatili ng isang website na tinatawag na yummypizza.com kung saan ang mga tao ay maaaring mag-order ng pizza online. Upang masubaybayan ang kanilang mga benta at base ng customer, nagpapanatili sila ng isang database ng Redis upang iimbak ang lahat ng mga natatanging bisita sa website bawat buwan.

Sa tuwing bibisita ang isang user sa website ng YummyPizza, dapat idagdag ang user id sa database ng Redis. Gayundin, hindi rin dapat idagdag ang parehong user sa database. Kaya, ang perpektong istruktura ng data ay ang Redis set, kung saan ang mga set ay nag-iimbak lamang ng mga natatanging miyembro.

Ipagpalagay natin na limang user ang bumisita sa website, at ang mga miyembrong ito ay idinagdag sa Redis database, tulad ng ipinapakita sa sumusunod.

SADD YummyPizzaMga Bisita:Oktubre John Mary Raza Stoinis Prince

Tulad ng inaasahan, ang integer 5 ay naibalik, na nangangahulugang ang limang miyembro ay idinagdag sa set na nakaimbak sa key ' YummyPizzaMga Bisita:Oktubre.

Sa pagtatapos ng araw, kailangang suriin ng mga admin ng kumpanya ang kabuuang bilang ng mga natatanging bisita sa website. Kaya, kailangang kalkulahin ang Set cardinality. Sa kabutihang palad, ang dating tinalakay na SCARD command ay madaling gamitin sa ganitong uri ng sitwasyon.

Isagawa natin ang SCARD command sa set na nakaimbak sa key ' YummyPizzaMga Bisita:Oktubre.

scard YummyPizzaMga Bisita:Oktubre

Ang output ay 5, na nangangahulugang limang natatanging miyembro ang nasa tinukoy na hanay. Masyadong mabilis ang utos na ito. Hindi mahalaga ang limang miyembro o 50000 miyembro; ang oras ng pagpapatupad ay magiging pare-pareho.

Ipagpalagay na ang tinukoy na set key ay hindi umiiral sa Redis database. Pagkatapos, ang output ay magiging 0, tulad ng ipinapakita sa sumusunod na halimbawa. Sa kasong ito, tutukuyin natin ang isang susi na wala sa database.

scard NonExistingKey

Konklusyon

Upang ibuod, ang Redis set ay isang mainam na kandidato para sa pag-iimbak ng mga natatanging string. Gaya ng napag-usapan, ang pinakamahalagang bagay tungkol sa Redis set ay ang karamihan sa mga nauugnay na set operation ay tumatagal ng patuloy na oras upang maisagawa. Ang SCARD command ay isa sa mga pinakaginagamit na set command para kalkulahin ang kabuuang bilang ng mga set na miyembro para sa isang naibigay na set na nakaimbak sa isang tinukoy na key. Hindi mahalaga kung gaano karaming mga miyembro ang magagamit, ang command na ito ay tumatagal ng patuloy na oras upang maibigay ang output. Tulad ng ipinakita sa huling halimbawa, kung ang set na key ay hindi umiiral, ang output ay magiging 0.