Redis lset

Redis lset
Lista Redis to struktura danych, która zawiera sekwencję elementów ciągów w kolejności wstawiania. Opiera się na powiązanej liście. Tak więc wstawienie elementu na głowie i ogonie jest wykonywane w ciągłym czasie. Jedynym minusem list Redis jest to, że zapytające elementy według indeksu jest nieco kosztowne, co wymaga czasu bezpośrednio proporcjonalnego do indeksu elementu dostępu. Powodem wdrożenia opartej na powiązanej listy jest zwiększenie wstawienia danych dla bardzo długiej listy elementów.

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_key

List_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."
LPUSH Social-Media: Użytkownik: 100 "2022-08-05: Rozpoczął nowe zadanie w Linuxhint"
LPUSH Social-Media: Użytkownik: 100 "2022-08-06: Świetna impreza dzisiaj"
LPUSH Social-Media: Użytkownik: 100 "2022-08-07: Zły dzień!!!"

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.