Redis Wygby

Redis Wygby
Klucze Redis są trwałe, dopóki ich nie usuniesz ręcznie. W niektórych przypadkach może być konieczne przechowywanie tymczasowych par kluczowych w sklepie Redis. Usuwanie ich, gdy nie jest to potrzebne, jest dobrą praktyką. Usuwanie klawiszy jest żmudne i czasochłonne zadanie za każdym razem. Redis ma funkcję, aby ustawić czas ważności na danym kluczu, gdy go tworzysz lub po stworzeniu. Nazywamy to wartością TTL klucza Redis.

Ustaw wartość TTL podczas tworzenia klucza

Poniższa składnia służy do ustawienia czasu ważności dla danego klucza Redis w czasie tworzenia:

Ustaw temp_age 24 ex 5

Klucz „TEMP_AGE” wygasa po 5 sekundach.

Ustaw wartość TTL po utworzeniu klucza

Redis umożliwia najpierw utworzenie klucza, a następnie ustawić czas wygaśnięcia klawisza za pomocą polecenia Exire w następujący sposób:

Ustaw temp_age 24
Wygasnąć temp_age 5

Możliwe jest również określenie daty ważności jako znacznik czasu UNIX dla danego klawisza Redis za pomocą polecenia Extireat w następujący sposób:

Extireat TEMP_AGE 1669929041

Określony znacznik czasu UNIX jest powiązany z następującą czytelną ludzką datą:

Czw, 01 grudnia 2022 21:10:41 GMT

Klucz „TEMP_AGE” wygasa na 01-12-2022 o 21:10:41.

Komenda wygaśnięcia

Komenda wygaśnięcia zwraca datę wygaśnięcia jako znacznik czasu UNIX, który jest liczbą sekund obliczonej na podstawie daty epok unix (1970-01-01T00: 00: 00Z). To polecenie jest przydatne, gdy masz kilka kluczy w bazie danych Redis z godzinami ważności i musisz znać dokładną datę wygaśnięcia określonego klucza. Poniżej znajduje się składnia polecenia Wygby:

Wygby redis_key

Komenda wygasa jest bardzo szybka ze względu na złożoność czasu wykonania. Jeśli istnieje czas ważności, który jest powiązany z kluczem Redis, polecenie wygaśnięcia zwraca czas ważności w sekundach jako znacznik czasu UNIX. W przeciwnym razie polecenie zwraca liczbę ujemną -1 lub -2:

-1 Odpowiedź - Klucz Redis istnieje, ale nie ma z nią powiązanych z nią czasu ważności (TTL).

-2 Odpowiedź - określony klawisz Redis nie istnieje w bazie danych.

Przypadek użycia:

Załóżmy, że firma ABC musi zachować swoją historię zamówień części samochodowych tylko przez ostatni tydzień. Stąd używają bazy danych Redis do przechowywania nazwy klienta jako klucza i typu zamówienia jako wartości. Jednocześnie przechowują każdy klucz z czasem ważności jednego tygodnia od daty stworzenia.

John kupuje silnik od firmy ABC w dniach 2022-12-02. Firma musi dodać ten rekord do bazy danych Redis, jest następujące:

Ustaw „silnik” Customer_John

Ponadto klucz „Customer_john” powinien wygasnąć po tygodniu od 2022-12-02. Tak więc data ważności to 2022-12-09 o 12:00. W takim przypadku używamy polecenia Wygby, aby ustawić datę ważności tego klucza.

Komenda Expireat akceptuje znacznik czasu UNIX w kilka sekund. Musimy podać datę ważności jako znacznik czasu UNIX w następujący sposób:

Powiązany znacznik czasu UNIX dla daty wygaśnięcia (2022-12-09 12:00) to 1670524200).

Ustawmy datę ważności w następujący sposób:

Expireat Customer_John 1670524200

Tutaj dodajemy tylko jeden rekord zamówienia klienta do bazy danych. Ale tak nie jest, jeśli chodzi o scenariusz rzeczywistego. Mogą istnieć setki zamówień klientów, które są przetwarzane na tydzień. Trudno śledzić daty ważności dla wszystkich rekordów zamówień klienta.

Komenda wygasa jest przydatna w tego rodzaju scenariuszach. Jeśli masz klawisz Redis, polecenie wyginięcia pomaga odzyskać powiązaną datę ważności w sekundach od daty epoki.

Przyprowadźmy datę ważności klucza klienta_john w następujący sposób:

Wygby Customer_John

Zgodnie z oczekiwaniami, znacznik czasu UNIX jest zwracany. Jeśli przekonwertujesz tę wartość znacznika czasu na format, który można czytać, powinien on podać dokładną datę ustawioną w poprzednim kroku.

Komenda wygasa może być używana, gdy masz dużą ilość danych w bazie danych Redis i musisz wiedzieć o datach ważności dowolnego kluczy.

Kiedy nie ma czasu ważności na klucz Redis

Utwórzmy klawisz Redis bez czasu ważności (TTL) w następujący sposób:

Ustaw scenariusz NO_TTL_KEY „Bez TTL”

Jeśli wykonamy polecenie Wygby dla tego klucza, powinno zwrócić -1. Jest tak, ponieważ „no_ttl_key” nie jest powiązane z TTL.

Wygby no_ttl_key

Kiedy klucz nie istnieje

Jeśli uruchomimy polecenie Wygby, określając klucz, który nie istnieje w bieżącej bazie danych Redis, powinien on zwrócić odpowiedź -2 w następujący sposób:

Wygby toczyni_exist_key

Wniosek

Podsumowując, polecenie Redis Expreteime służy do odzyskania daty wygaśnięcia lub godziny danego klucza. Zwraca znacznik czasu UNIX w kilka sekund. Jeśli nie ma czasu ważności, który jest powiązany z danym kluczem, polecenie wygasa zwraca negatywne 1. Polecenie zwraca -2, jeśli określony klucz nie istnieje. Co najważniejsze, to polecenie może być używane w aplikacjach o wysokiej wydajności ze względu na jego szybkie wykonanie z złożonością O (1).