Redis getex

Redis getex
Redis to magazyn danych o wartości kluczowej używany jako pamięć podręczna w pamięci, baza danych, szereg czasowy, silnik strumieniowy, broker wiadomości itp. Ponieważ magazyn danych Redis używa prostego formatu par kluczowych do przechowywania danych, jest bardzo wydajny. Ponadto prędkość zapytania jest bardzo wysoka z niską złożonością czasową, taką jak O (1) i O (log (n)). Klucze Redis mogą przechowywać różne struktury danych, takie jak struny, zestawy, skróty, sortowane zestawy i listy.

Zwykle polecenia GET i SET są używane do przechowywania i pobierania wartości typu ciągów przechowywanych na danym kluczu Redis. Te dwa polecenia działają ze stałą złożonością czasu.

Ponadto, polecenie getex jest dostępne do odczytania wartości ciągów przechowywanych w danym kluczu. Ale to polecenie jest również powiązane z równoległym operacją zapisu. Ten przewodnik skupi się na składni polecenia GetEx, jego opcjach i przypadkach użycia.

Ttl z klawisza Redis

Czas na żywo (TTL) to czas ważności danego elementu danych. Zwykle TTL może być powiązane z wierszami bazy danych. Limit czasu można również ustawić za pomocą klawiszy Redis. Tak więc klient Redis może sprawdzić pozostałe sekundy, że dany klucz będzie dostępny w magazynie danych. Redis oferuje polecenie TTL, aby sprawdzić czas na żywo wartości danego klucza. Jeśli limit czasu nie jest powiązany z określonym kluczem, polecenie TTL zwraca -1. Użyjemy polecenia TTL w następnych sekcjach, aby sprawdzić pozostały czas danego klucza.

Polecenie getex

Jak podkreślono, polecenie getex jest bardziej podobne do polecenia get, z tym wyjątkiem, że można je użyć do ustalenia czasu ważności określonego klucza. Ponadto opcja polecenia może usunąć wartość limitu czasu z danego klucza. Składnia polecenia getex jest następujące:

Klucz getex [ex timeout_in_seconds | PX TIMEOUT_IN_MILLISECONDS | Exat Timeout_In_Unix-czas-sekundów | PXAT TIMEOUT_IN_Unix-TIME MILLISECONDS | TRWAĆ]

klucz: To jest klucz, który wskazuje na wartość ciągu.

Do ustawienia limitu czasu w sekundach lub milisekundach można użyć następujących opcjonalnych argumentów.

BYŁY: To ustanowi czas ważności w sekundach dla danego klucza.

PX: Kluczowa wartość limitu czasu zostanie ustawiona w milisekundach.

Ponadto możemy określić wartość znacznika czasu UNIX w sekundach lub milisekundach za pomocą następujących opcji poleceń Exat I Pxat:

Exat: Czas ważności zostanie ustawiony w formacie znacznika czasu UNIX, a znacznik czasu będzie za kilka sekund.

Pxat: Limit czasu dla danego klucza Redis zostanie ustawiony jako znacznik czasu UNIX w milisekundach.

TRWAĆ: Określając to, możesz usunąć czas do wartości na żywo powiązany z określonym kluczem.

Polecenie getex zwraca wartość określonego klucza. To polecenie działa tylko z wartościami typu ciągu, ale nie skrótów, list, sortowanych zestawów itp. Jeśli określisz klucz powiązany z wartością nieprzestrzenioną, polecenie zwróci błąd. Ponadto, jeśli klucz jest już wygasł lub nie istnieje, polecenie powróci zero.

W poniższej sekcji omówimy praktyczne użycie polecenia getex.

Przypadek użycia - link tymczasowego resetowania lub generowanie kodu PIN dla odzyskiwania hasła/OTPS

Firma hostingowa dostarcza funkcję odzyskiwania hasła dla zarejestrowanych użytkowników. Jako środek bezpieczeństwa wysyłają do użytkownika nowy link URL, który wygasnie w ciągu 5 minut. Firma od dawna korzysta ze sklepu danych Redis i używa polecenia getex, aby ustawić czas na żywo dla danego użytkownika.

Załóżmy, że użytkownik z user_id 1000 żąda odzyskiwania hasła. Tak więc adres URL odzyskiwania może być przechowywany w kluczu COCTERSURL: UserID: 1000. Możemy użyć polecenia Set do przechowywania adresu URL odzyskiwania w następujący sposób:

Ustaw cecoversUrl: UserID: 1000 "https: // ABC.com/ceconsive/userid = 1000, key = sdfiuoe3290e9rjs ”

Sprawdźmy, czy adres URL łańcucha jest odpowiednio przechowywany w kluczu COCTERSURL: UserID: 1000. Możemy użyć polecenia getex w następujący sposób:

GetEx ConsecurationUrl: UserID: 1000

Dane wyjściowe poprzedniego polecenia pokazano następująco:

Jeśli użyliśmy polecenia GET zamiast polecenia getex, wyjście będzie takie samo.

Użyjmy polecenia TTL, aby sprawdzić, czy czas ważności jest powiązany z tym kluczem.

TTL RecoverySurl: UserID: 1000

Zgodnie z oczekiwaniami, -1 został zwrócony przez polecenie TTL, co oznacza, że ​​nie jest powiązany czas wygaśnięcia z określonym kluczem.

Zgodnie z tym przykładem firma hostingowa musi ustawić 5 minut czasu na adres URL odzyskiwania. Więc będziemy używać BYŁY Opcja polecenia. Ponieważ 5 minut to 300 sekund, możemy skonstruować polecenie getex w następujący sposób:

GetEx RecoverySurl: UserID: 1000 EX 500

Uruchommy polecenie TTL kilka razy, aby sprawdzić pozostały czas, w którym klucz będzie w magazynie danych.

Zgodnie z oczekiwaniami czas maleje, a ostatecznie COCTERSURL: UserID: 1000 Klucz zostanie usunięty. Poniżej znajduje się wyjście po 5 minutach:

-2 został zwrócony przez polecenie, co oznacza, że ​​klucz jest wygasł i usuwany z magazynu danych.

Czasami może być konieczne usunięcie wartości limitu czasu powiązanego z danym kluczem. Zatem opcja PRZYGOTOWANIA Polecenia można użyć do usunięcia wartości TTL związanej z określonym kluczem.

Utwórzmy kolejny przykładowy klawisz i przypiszmy do niego wartość ciągu. W takim przypadku określamy wartość TTL w milisekundach, przekazując Px opcja.

Ustaw keytotestpersist „Zostanie to wygasłe w ciągu 60 sekund” PX 50000

Następnie będziemy sprawdzić pozostały czas w następujący sposób:

Zgodnie z oczekiwaniami, TTL maleje. Zadzwońmy do polecenia getex z opcją trwaj w następujący sposób:

GetEx Keytotestpersist utrzymuje się

Idealnie byłoby to usunięcie TTL powiązane z tym kluczem. Sprawdźmy TTL pod kątem klucza Keytotestpersist.

Polecenie TTL zwróciło -1, co oznacza, że ​​żadne TTL nie jest powiązane z kluczem Keytotestpersist.

Podobnie Getex Dowództwo można użyć do ustawienia czasu ważności kluczy w znaczniku czasu Unix.

Wniosek

Podsumowując, polecenie Redis GetEx może być używane do pobierania wartości ciągów przechowywanych w danym kluczu, ponieważ polecenie GET. Jedyną różnicą z poleceniem GETEX jest to, że obsługuje ustawienie i usuwanie czasów ważności dla danego klucza. Obsługuje kilka opcjonalnych argumentów w celu określenia czasu wygaśnięcia w sekundach, milisekundach i sekundach UNIX-TimeStamp. Jak omówiono, polecenie zawiera opcję utrzymywania się w celu usunięcia powiązanego TTL dla danego klucza. Ogólnie rzecz biorąc, polecenie getex działa ze stałą złożonością czasu.