Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak zdefiniować TTL dla strumieni redis?

Nie ma prostego sposobu na usunięcie starszych wpisów na podstawie TTL/wiek. Możesz użyć kombinacji XTRIM/XDEL z innymi poleceniami, aby przyciąć strumień.

Zobaczmy, jak możemy użyć XTRIM

Strumień XTRIM MAXLEN ~ SIZE

XTRIM przycina strumień do określonej liczby elementów, w razie potrzeby usuwając starsze elementy (elementy o niższych identyfikatorach).

Generujesz rozmiar strumienia codziennie lub okresowo na podstawie swoich zasad usuwania i przechowujesz go gdzieś za pomocą XLEN polecenie

Uruchom okresowe zadanie, które wywołałoby XTRIM jako

XTRIM x-stream MAXLEN ~ (NEW_SIZE - PREVIOUS_SIZE)

Na przykład wczorajszy rozmiar strumienia wynosił 500, teraz jest 600, potem musimy usunąć 500 wpisów, abyśmy mogli po prostu uruchomić

XTRIM x-stream MAXLEN ~ 100

Możesz użyć różnych zasad usuwania, na przykład codziennie, co tydzień, dwa razy w tygodniu itp.

Identyfikator strumienia XDEL [ID...]

Usuwa określone wpisy ze strumienia i zwraca liczbę usuniętych wpisów, która może różnić się od liczby identyfikatorów przekazanych do polecenia w przypadku, gdy niektóre identyfikatory nie istnieją.

Możesz więc zrobić, gdy usługa B zużywa zdarzenie, a sama usługa może usunąć wpis strumienia, ponieważ usługa B zna identyfikator strumienia, ale to nie zadziała, gdy tylko zaczniesz korzystać z grupy konsumentów. Powiedziałbym więc, że użyj zestawu Redis lub mapy Redis, aby śledzić identyfikatory strumienia potwierdzenia i uruchamiać okresowe zadanie czyszczenia, aby wyczyścić strumień.

Na przykład

Usługa A wysyła element strumienia z ID1 do usługi BUsługa B potwierdza element strumienia po zużyciu elementów w mapack_stream ={ ID1:true }, możesz śledzić inne dane np. liczyć w przypadku grupy konsumentów.

Zadanie zamiatania będzie uruchamiane okresowo o godzinie 1 w nocy dziennie, które odczytuje wszystkie elementy ack_stream i odfiltrowuje wszystkie elementy, które wymagają usunięcia. Teraz możesz zadzwonić do XDEL polecenia w partiach z zestawem identyfikatorów strumienia.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Funkcja klawiszy Redis do dopasowania z wieloma wzorami

  2. Konwencja nazewnictwa i prawidłowe znaki dla klucza Redis

  3. zainstaluj redis na instancji aws micro

  4. nestJS socket.io-redis:6.0.1

  5. Zliczanie użytkowników socket.io na serwerach poziomych