Репички LSET

Repicki Lset



Списъкът на Redis е структура от данни, която съдържа последователност от низови елементи в реда на вмъкване. Базиран е на свързан списък. Така че вмъкването на елемент в главата и опашката се извършва в постоянно време. Единственият недостатък на списъците на Redis е, че запитването на елементи по индекс е малко скъпо, което отнема време, пряко пропорционално на индекса на елемента за достъп. Причината зад внедряването, базирано на свързани списъци, е да направи вмъкването на данни по-бързо за много дълъг списък от елементи.

Списъците на Redis имат индексиране на базата на 0. Първият елемент е обозначен като 0 th индекс; вторият е на 1 ул индекс и така нататък. Достъпът до опашни елементи с индексите е възможен с отрицателни индекси, като последният елемент е индексиран като -1, предпоследният елемент е -2 и т.н.









Елементите на списъка могат да бъдат зададени на всеки даден индекс с командата LSET, която е описана в следващия раздел.



Командата LSET

Командата LSET задава елемент в дадения индекс на Redis списък, съхранен в посочения ключ. Има следния прост синтаксис:





Индексен елемент на LSET list_key

списък_ключ : Ключът на списъка Redis.

индекс : Индексът, където трябва да зададете елемент.



елемент : Елементът от низ, който трябва да бъде зададен на посочения индекс.

Тази команда връща прост низ „OK“, ако елементът е зададен правилно. Всеки път, когато срещне индекс, който е извън диапазона, командата LSET връща грешка.

Един от най-честите случаи на използване на списъците на Redis е за съхраняване на публикации в социални медии и техните актуализации за отделни потребители. Командата LSET играе важна роля там, както е обсъдено в следващия раздел.

Случай на употреба – Актуализиране на публикации в социални медии

Да приемем събитие, при което компания поддържа свой собствен уебсайт за социални медии с хиляди потребители, които активно публикуват публикации и статуси. Те са установили, че списъците на Redis са подходящият кандидат за заемане на тези постове и статуси, където се случва често вмъкване, а списъците на Redis извършват вмъкване в постоянно време.

Нека създадем Redis списък за даден потребител с идентификатор 100, който ще се използва за съхраняване на публикациите и съобщенията за състояние на този конкретен потребител. Ще използваме командата LPUSH, за да поставим някои фиктивни публикации и съобщения за състояние за потребителски идентификатор 100.

LPUSH social-media:user:100 '2022-08-01:Хубав ден за начало.'
LPUSH social-media:user:100 '2022-08-05:Започна нова работа в linuxhint'
LPUSH social-media:user:100 '2022-08-06:Страхотно парти днес'
LPUSH social-media:user:100 '2022-08-07:Лош ден!!!'

Изход

Да предположим, че потребителят с потребителски идентификатор 100 ще актуализира една от старите си публикации. Да предположим, че третият пост, който е публикувал, се нуждае от известна корекция. Командата LSET може лесно да постигне това, както е показано по-долу.

Тъй като третият елемент е на индекс 2 от главата. Ще го актуализираме, както следва:

LSET social-media:user:100 2 „Започна нова роля като писател в LinuxHint“

Изход

Както се очакваше, командата беше изпълнена успешно и елементът във втория индекс беше актуализиран. Нека проверим отново списъка, както следва:

Можем да направим същото, като посочим индекса от опашката, както следва:

LSET social-media:user:100 -2 „Започна нова роля като писател в LinuxHint“

Както се очакваше, третият елемент беше зададен на новия низ „Задача, започната при LinuxHINT“.

Ако посочите индекс, който е извън обхвата, това ще предизвика грешка, както е показано по-долу:

LSET social-media:user:100 6 „Работата е започната в LinuxHINT“

Изход

Заключение

Командата LSET задава елемент от списък на определен индекс към даден елемент от списъка Redis, съхранен в даден ключ. Тъй като индексите на списъка на Redis започват от 0, това е първият елемент. Индекс 1 е вторият елемент от списъка и т.н. Както беше обсъдено, индексите на елементите, започващи от опашката, могат да бъдат определени с помощта на отрицателни числа като -1 е последният елемент, -2 е елементът преди последния и т.н. Всеки път, когато бъде подаден несъществуващ индекс, командата LSET ще върне грешка. Освен това тази команда връща прост изходен низ при успешното изпълнение.