Списъците на 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 ще върне грешка. Освен това тази команда връща прост изходен низ при успешното изпълнение.