Ředkvička LSET

Redkvicka Lset



Seznam Redis je datová struktura, která obsahuje sekvenci prvků řetězce v pořadí vložení. Je založen na Linked List. Takže vkládání prvku na hlavu a patu se provádí v konstantním čase. Jedinou nevýhodou seznamů Redis je, že dotazování na prvky podle indexu je trochu nákladné, což zabírá čas přímo úměrný indexu přistupujícího prvku. Důvodem implementace založené na propojeném seznamu je zrychlení vkládání dat pro velmi dlouhý seznam položek.

Seznamy Redis mají indexování založené na 0. První prvek je označen jako 0 čt index; druhý je na 1 Svatý index a tak dále. Přístup k koncovým prvkům pomocí indexů je možný se zápornými indexy, jako je poslední prvek indexovaný jako -1, předposlední prvek je -2 a tak dále.









Prvky seznamu lze nastavit na jakýkoli daný index pomocí příkazu LSET, který je popsán v následující části.



Příkaz LSET

Příkaz LSET nastaví prvek na daný index seznamu Redis uloženého na zadaném klíči. Má následující jednoduchou syntaxi:





Indexový prvek LSET list_key

klíč_seznamu : Klíč seznamu Redis.

index : Index, do kterého potřebujete nastavit prvek.



živel : Prvek řetězce, který má být nastaven na zadaný index.

Tento příkaz vrátí jednoduchý řetězec „OK“, pokud byl prvek správně nastaven. Kdykoli narazí na index, který je mimo rozsah, příkaz LSET vrátí chybu.

Jedním z nejčastějších případů použití seznamů Redis je ukládání příspěvků na sociálních sítích a jejich aktualizací pro jednotlivé uživatele. Příkaz LSET tam hraje důležitou roli, jak je uvedeno v následující části.

Případ použití – Aktualizujte příspěvky na sociálních sítích

Předpokládejme událost, kdy společnost udržuje vlastní webovou stránku sociálních médií s tisíci uživatelů, kteří aktivně zveřejňují příspěvky a statusy. Zjistili, že seznamy Redis jsou vhodným kandidátem pro zastávání těchto postů a statusů, kde dochází k častému vkládání, a seznamy Redis provádějí vkládání v konstantním čase.

Vytvořme seznam Redis pro dané uživatelské ID 100, který bude použit k ukládání příspěvků a stavových zpráv tohoto konkrétního uživatele. Příkaz LPUSH použijeme k vložení fiktivních příspěvků a stavových zpráv pro ID uživatele 100.

LPUSH social-media:user:100 '2022-08-01: Hezký den na začátek.'
LPUSH social-media:user:100 '2022-08-05:Zahájil novou práci v linuxhint'
LPUSH social-media:user:100 '2022-08-06: Dnes skvělá párty'
LPUSH social-media:user:100 '2022-08-07:Špatný den!!!'

Výstup

Předpokládejme, že uživatel s ID uživatele 100 aktualizuje jeden ze svých starých příspěvků. Předpokládejme, že třetí příspěvek, který zveřejnil, potřebuje nějakou opravu. Příkaz LSET toho může snadno dosáhnout, jak je znázorněno níže.

Protože třetí prvek je na indexu 2 od hlavy. Budeme jej aktualizovat následovně:

LSET social-media:user:100 2 'Začal novou roli jako spisovatel v LinuxHint'

Výstup

Podle očekávání byl příkaz úspěšně proveden a prvek na druhém indexu byl aktualizován. Znovu zkontrolujeme seznam následovně:

Totéž můžeme provést zadáním indexu z ocasu takto:

LSET social-media:user:100 -2 'Začal novou roli jako spisovatel v LinuxHint'

Jak se očekávalo, třetí prvek byl nastaven na nový řetězec „Job start at LinuxHINT“.

Pokud zadáte index, který je mimo rozsah, vyvolá to chybu, jak je znázorněno v následujícím:

LSET social-media:user:100 6 'Úloha začala na LinuxHINT'

Výstup

Závěr

Příkaz LSET nastaví prvek seznamu na zadaném indexu na daný prvek seznamu Redis uloženého na daném klíči. Protože indexy seznamu Redis začínají od 0, jedná se o první prvek. Index 1 je druhý prvek seznamu a tak dále. Jak bylo diskutováno, indexy prvků počínaje koncem mohou být specifikovány pomocí záporných čísel, jako -1 je poslední prvek, -2 je prvek před posledním a tak dále. Kdykoli je předán neexistující index, příkaz LSET vrátí chybu. Kromě toho tento příkaz vrací výstup jednoduchého řetězce přes úspěšné provedení.