Listy Redis mają indeksowanie oparte na 0. Pierwszy element jest oznaczony jako 0th indeks; drugi jest na 1St indeks i tak dalej. Dostęp do elementów ogona z indeksami jest możliwy z wskaźnikami ujemnymi, takimi jak ostatni element, jest indeksowany jako -1, przedostatnim elementem jest -2 i tak dalej.
Elementy listy można ustawić w dowolnym indeksie za pomocą polecenia LSet, co opisano w następnym rozdziale.
Polecenie lset
Polecenie LSet ustawia element na danym indeksie listy Redis przechowywanej w określonym klawiszu. Ma następującą prostą składnię:
Element indeksu LSet List_keyList_key: Klucz listy Redis.
indeks: Indeks, w którym musisz ustawić element.
element: Element ciągów, który ma być ustawiony w określonym indeksie.
To polecenie zwraca prosty ciąg „OK”, jeśli element został poprawnie ustawiony. Ilekroć napotyka indeks, który jest poza zasięgiem, polecenie LSet zwraca błąd.
Jednym z najczęstszych przypadków użycia list Redis jest przechowywanie postów w mediach społecznościowych i ich aktualizacje dla poszczególnych użytkowników. Komenda LSet odgrywa tam ważną rolę, jak omówiono w poniższej sekcji.
Przypadek użycia - zaktualizuj posty mediów społecznościowych
Załóżmy wydarzenie, w którym firma utrzymuje własną stronę internetową mediów społecznościowych z tysiącami użytkowników aktywnie publikujących posty i statusy. Zidentyfikowali, że listy Redis są odpowiednim kandydatem do przechowywania tych postów i statusów, w których odbywa się częste wstawienie, a listy Redis wykonują wstawienie w stałym czasie.
Utwórzmy listę Redis dla danego identyfikatora użytkownika 100, który zostanie użyty do przechowywania postów i wiadomości statusu tego konkretnego użytkownika. Użyjemy polecenia LPUSH, aby umieścić kilka manekinów i komunikatów o statusie dla identyfikatora użytkownika 100.
LPUSH Social-Media: Użytkownik: 100 "2022-08-01: Miły dzień na początek."Wyjście
Załóżmy, że użytkownik z identyfikatorem użytkownika 100 zaktualizuje jeden ze swoich starych postów. Załóżmy, że trzeci post, który opublikował. Polecenie LSet może to łatwo osiągnąć, jak pokazano następujące.
Ponieważ trzeci element jest w indeksie 2 z głowy. Będziemy go aktualizować w następujący sposób:
LSet Media Social-Media: Użytkownik: 100 2 "Rozpoczął nową rolę pisarza w Linuxhint"Wyjście
Zgodnie z oczekiwaniami polecenie zostało pomyślnie wykonane, a element w drugim indeksie został zaktualizowany. Przyjmijmy listę w następujący sposób:
Możemy zrobić to samo, określając indeks z ogona w następujący sposób:
LSet Media Social -Media: Użytkownik: 100 -2 "Rozpoczął nową rolę pisarza w Linuxhint"Zgodnie z oczekiwaniami trzeci element został ustawiony na nowy ciąg „Zadanie rozpoczęte w Linuxhint”.
Jeśli określisz indeks, który jest poza zasięgiem, zwiększy błąd, jak pokazano następująco:
LSet Media Social-Media: Użytkownik: 100 6 "zadanie rozpoczęte w Linuxhint"Wyjście
Wniosek
Polecenie LSet ustawia element listy w określonym indeksie do danego elementu listy Redis przechowywanej w danym kluczu. Ponieważ indeksy list Redis zaczynają się od 0, jest to pierwszy element. Indeks 1 jest drugim elementem listy i tak dalej. Jak omówiono, indeksy elementów zaczynających się od ogona można określić przy użyciu liczb ujemnych, takich jak -1. Ilekroć przekazany nie istniejący indeks, polecenie LSet zwróci błąd. Ponadto to polecenie zwraca proste wyjście ciągów w stosunku do pomyślnego wykonania.