Redis Srem

Redis Srem
„Jeśli kolejna aplikacja internetowa szuka sposobu na przechowywanie zbioru ciągów bez duplikatów, zestawy Redis są strukturą danych. Zestawy Redis mogą zawierać więcej niż cztery miliardy elementów typu ciągów, które są więcej niż wystarczające w praktycznych przypadkach. Dostępnych jest kilka wstępnie zbudowanych poleceń do wykonywania podstawowych do zaawansowanych operacji na zestawach, takich jak dodawanie, usuwanie, kontrola istnienia itp. Najważniejszą rzeczą w podstawowych operacjach zestawu, takich jak dodanie i usuwanie, jest to, że mają one stałą złożoność czasu."

Polecenie Redis Srem

Polecenie Redis SREM służy do usuwania elementów z zestawu przechowywanego w określonym klawiszu. Z wersji 2.4.0, to polecenie obsługuje jednocześnie usuwanie wielu członków. Walidacje są dostępne dla następujących scenariuszy.

Określając nieistniejących członków

Jeśli określony członek nie jest częścią danego zestawu, członek ten zostanie pominięty.

Określanie nieistniejącego klucza

Gdy klucz nie jest dostępny, polecenie SREM zwróci 0. W takim przypadku polecenie SREM traktuje ten nieistniejący zestaw jako pusty zestaw.

Składnia:

Polecenie SREM ma bardzo prostą składnię, jak pokazano następująco.

Członek SREM REDIS_KEY [członek…]

redis_key: Unikalny identyfikator, w którym zestaw jest przechowywany.

członek: Członek do usunięcia z listy. Opcjonalnie możesz określić wiele członków.

Polecenie SREM zwraca wartość liczb całkowitą, która jest liczbą członków pomyślnie usuniętej. Na przykład, gdyby trzech członków zostało usunięte z zestawu, wartość zwracająca wynosiłaby 3.

Ponadto, jeśli określisz klucz, który wskazuje na skrót lub listę, ale nie na zestaw. W takim przypadku polecenie SREM wzbudzi błąd.

Przykład 01 - Usuń element z zestawu

Załóżmy, że każdego miesiąca będziemy przechowywać najlepszych fanów Twojej osobistej witryny na podstawie poziomu interaktywności. Ponieważ zestawy zachowują członkowie bez duplikatu, możemy zapewnić, że ten sam użytkownik nie będzie dodawany wiele razy.

Będziemy używać polecenia SADD, aby dodać 5 najlepszych fanów w styczniu do zestawu przechowywanego w kluczowych topfansach: styczeń.

Sadd Topfans: Styczeń Jacknelson Tinamaddy Joshinglish Eoinmorgan Derekharns

Sprawdźmy Topfans: styczeń Ustaw za pomocą polecenia Smembers.

Topfany Smembers: styczeń

Wyjście:

Ze względu na nieetyczne zachowanie członka „Tinamaddy”, mieliśmy wymóg usunięcia jej z zestawu. Teraz polecenie SREM jest idealnym kandydatem do tego.

SREM TOPFANS: Styczeń Tinamaddy

Zgodnie z oczekiwaniami wyjście wynosi 1, co oznacza, że ​​jeden członek został usunięty. Sprawdźmy również istniejących członków w planie.

Topfany Smembers: styczeń

Jak pokazano na powyższym wyjściu, członek „Tinamaddy” wyszedł z listy.

Przykład 02 - Usuń wiele członków jednocześnie

W niektórych scenariuszach może być konieczne usunięcie więcej niż jednego członka z zestawu. Stąd polecenie SREM obsługuje wiele argumentów członków. Powiedzmy, że musimy usunąć zarówno członków „Jacknelson”, jak i „Joshinglish”. Zrobiłoby to dla ciebie następujące polecenie.

SREM Topfans: Styczeń Jackneson Joshinglish

Polecenie zwróciło liczbę całkowitą 2, co oznacza, że ​​dwóch członków zostało usunięte.

Ważną rzeczą do zauważenia jest to, że komenda SREM zużywa ciągły czas w obu scenariuszach. Dlatego zaleca się stosowanie w aplikacjach o niskiej opóźnienia.

Wniosek

Podsumowując, polecenie SREM działa na zestawach danych. Jego głównym zadaniem jest usunięcie elementu z zestawu przechowywanego w określonym kluczu. Podobnie jak polecenia Sadd i Sismember, polecenie SREM ma stałą złożoność czasu, w której liczba elementów nie wejdzie na czas wykonywania polecenia SREM. Jak wspomniano, z wersji 2 Redis.4.0, polecenie SREM pozwala na wiele argumentów członków. Dlatego możesz jednocześnie usunąć wielu członków z danej listy. Po wykonaniu tego polecenia zwraca wartość całkowitą, która jest liczbą pomyślnie usuniętych elementów z listy. Ogólnie rzecz biorąc, polecenie SREM jest idealnym kandydatem do użycia w aplikacjach o niskim opóźnieniu.