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

Jak używać kluczy przestrzeni nazw na redis, aby uniknąć kolizji nazw?

Rozwiązanie 1:Przechowuj dane różnych modułów w różnych instancjach Redis

Najbardziej rygorystyczną izolacją jest przechowywanie danych każdego modułu w indywidualnej instancji Redis, tj. indywidualnym procesie Redis.

Rozwiązanie 2:Przechowuj dane różnych modułów w różnych bazach danych jednej instancji Redis

Instancja Redis może mieć wiele baz danych, a liczbę baz danych można skonfigurować w pliku konfiguracyjnym. Domyślnie jest 16 baz danych.

Te bazy danych są nazywane indeksem liczbowym liczonym od zera. Za pomocą polecenia select możesz użyć i Baza danych. Po dokonaniu wyboru kolejne polecenia będą działać na tym baza danych.

Tak więc, jeśli przypiszesz niezależną bazę danych do każdego modułu, możesz uniknąć kolizji nazw.

UWAGA :to rozwiązanie NIE DZIAŁA z Redis Cluster . Redis Cluster pozwala tylko na użycie 0 baza danych.

Rozwiązanie 3:Utwórz przestrzeń nazw z prefiksem klucza

Jeśli wszystkie Twoje dane muszą być przechowywane w jednej bazie danych, nadal możesz domyślnie utworzyć przestrzeń nazw z prefiksem klucza . Dla każdego modułu wszystkie dane tego modułu powinny mieć ten sam wzorzec klucza:ModuleName:KeyName , czyli każdy klucz tego modułu ma ten sam prefiks:ModuleName .

Ponieważ każdy moduł ma inną nazwę, nie będzie żadnych kolizji nazw między tymi modułami:

// Set keys for module1
SET module1:key1 value
SET module1:key2 value

// Set keys for module2
SET module2:key1 value
SET module2:key2 value

UWAGA :to rozwiązanie działa również z Redis Cluster .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zaimplementować tę pojedynczą rozproszoną kolejkę współbieżności na dowolnej platformie MQ?

  2. Redis vs Service Bus w scenariuszu pub/sub

  3. Problem z połączeniem Docker compose spring boot redis

  4. Laravel Socket.io Połączony, ale nie odbiera danych

  5. Jak mogę usunąć obiekty z Redis, które są dodawane w czasie rzeczywistym?