Labanos LSET

Labanos Lset



Ang listahan ng Redis ay isang istraktura ng data na nagtataglay ng pagkakasunud-sunod ng mga elemento ng string sa pagkakasunud-sunod ng pagpapasok. Ito ay batay sa Linked List. Kaya, ang pagpasok ng isang elemento sa ulo at buntot ay isinasagawa sa patuloy na oras. Ang tanging downside ng mga listahan ng Redis ay ang pag-query ng mga elemento sa pamamagitan ng isang index ay medyo magastos, na tumatagal ng oras na direktang proporsyonal sa index ng elemento ng pag-access. Ang dahilan sa likod ng naka-link na pagpapatupad na nakabatay sa listahan ay upang gawing mas mabilis ang pagpapasok ng data para sa napakahabang listahan ng mga item.

Ang mga listahan ng Redis ay may 0-based na pag-index. Ang unang elemento ay itinalaga bilang 0 ika index; ang pangalawa ay nasa 1 st index, at iba pa. Ang pag-access sa mga elemento ng buntot na may mga index ay posible sa mga negatibong indeks tulad ng huling elemento ay na-index bilang -1, ang penultimate na elemento ay -2, at iba pa.









Ang mga elemento ng listahan ay maaaring itakda sa anumang ibinigay na index gamit ang LSET command, na inilalarawan sa sumusunod na seksyon.



Ang LSET Command

Ang utos ng LSET ay nagtatakda ng isang elemento sa ibinigay na index ng isang listahan ng Redis na nakaimbak sa tinukoy na key. Mayroon itong sumusunod na simpleng syntax:





LSET list_key index element

list_key : Ang susi ng listahan ng Redis.

index : Ang index kung saan kailangan mong magtakda ng elemento.



elemento : Ang string element na itatakda sa tinukoy na index.

Ang command na ito ay nagbabalik ng Simple string na 'OK' kung ang elemento ay naitakda nang maayos. Sa tuwing makakatagpo ito ng isang index na wala sa saklaw, ang utos ng LSET ay nagbabalik ng isang error.

Isa sa mga pinakakaraniwang kaso ng paggamit ng mga listahan ng Redis ay ang pag-imbak ng mga post sa social media at ang kanilang mga update para sa mga indibidwal na user. Ang utos ng LSET ay gumaganap ng isang mahalagang papel doon, tulad ng tinalakay sa susunod na seksyon.

Use Case – I-update ang Mga Post sa Social Media

Ipagpalagay natin ang isang kaganapan kung saan ang isang kumpanya ay nagpapanatili ng sarili nitong social media website na may libu-libong user na aktibong nagpo-post ng mga post at status. Natukoy nila na ang mga listahan ng Redis ay ang angkop na kandidato na humawak sa mga post at status na ito kung saan nangyayari ang madalas na pagpapasok, at ang mga listahan ng Redis ay nagsasagawa ng pagpasok sa palagiang oras.

Gumawa tayo ng listahan ng Redis para sa isang ibinigay na user id 100 na gagamitin upang iimbak ang mga post at status message ng partikular na user na iyon. Gagamitin namin ang utos ng LPUSH para maglagay ng ilang dummy post at status message para sa user id 100.

LPUSH social-media:user:100 '2022-08-01:Magandang araw para magsimula.'
LPUSH social-media:user:100 '2022-08-05:Nagsimula ng bagong trabaho sa linuxhint'
LPUSH social-media:user:100 '2022-08-06:Magandang party ngayon'
LPUSH social-media:user:100 '2022-08-07: Masamang araw!!!'

Output

Ipagpalagay na ang user na may user id 100 ay mag-a-update ng isa sa kanyang mga lumang post. Ipagpalagay na ang ikatlong post na kanyang nai-post ay nangangailangan ng ilang pagwawasto. Ang utos ng LSET ay madaling makamit ito, tulad ng ipinapakita sa mga sumusunod.

Dahil ang ikatlong elemento ay nasa index 2 mula sa Ulo. I-update namin ito tulad ng sumusunod:

LSET social-media:user:100 2 'Nagsimula ng bagong tungkulin bilang isang manunulat sa LinuxHint'

Output

Tulad ng inaasahan, matagumpay na naisakatuparan ang command, at ang elemento sa pangalawang index ay na-update. Suriin nating muli ang listahan tulad ng sumusunod:

Magagawa natin ang parehong sa pamamagitan ng pagtukoy ng index mula sa buntot tulad ng sumusunod:

LSET social-media:user:100 -2 'Nagsimula ng bagong tungkulin bilang isang manunulat sa LinuxHint'

Gaya ng inaasahan, ang ikatlong elemento ay naitakda sa bagong string na 'Nagsimula ang trabaho sa LinuxHINT'.

Kung tutukuyin mo ang isang index na wala sa saklaw, ito ay magtataas ng isang error, tulad ng ipinapakita sa sumusunod:

LSET social-media:user:100 6 'Nagsimula ang trabaho sa LinuxHINT'

Output

Konklusyon

Ang utos ng LSET ay nagtatakda ng isang elemento ng listahan sa isang tinukoy na index sa isang ibinigay na elemento ng listahan ng Redis na nakaimbak sa isang ibinigay na key. Dahil ang mga index ng listahan ng Redis ay nagsisimula sa 0, ito ang unang elemento. Ang Index 1 ay ang pangalawang elemento ng listahan, at iba pa. Tulad ng tinalakay, ang mga index ng mga elemento na nagsisimula sa buntot ay maaaring tukuyin gamit ang mga negatibong numero tulad ng -1 ay ang huling elemento, -2 ay ang elemento bago ang huli, at iba pa. Sa tuwing maipapasa ang isang hindi umiiral na index, magbabalik ng error ang utos ng LSET. Higit pa rito, ang utos na ito ay nagbabalik ng isang simpleng output ng string sa matagumpay na pagpapatupad.