Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Wie kann man Schlüssel auf Redis benennen, um Namenskollisionen zu vermeiden?

Lösung 1:Daten verschiedener Module in verschiedenen Redis-Instanzen speichern

Die strengste Isolierung besteht darin, Daten jedes Moduls in einer einzelnen Redis-Instanz, also einem einzelnen Redis-Prozess, zu speichern.

Lösung 2:Speichern Sie Daten verschiedener Module in verschiedenen Datenbanken einer einzigen Redis-Instanz

Eine Redis-Instanz kann mehrere Datenbanken haben, und Sie können die Anzahl der Datenbanken in der Konfigurationsdatei konfigurieren. Standardmäßig gibt es 16 Datenbanken.

Diese Datenbanken werden mit einem nullbasierten numerischen Index benannt. Mit dem select-Befehl können Sie das ith verwenden Datenbank. Nach der Auswahl werden alle nachfolgenden Befehle auf dem ith ausgeführt Datenbank.

Wenn Sie also jedem Modul eine eigene Datenbank zuweisen, können Sie Namenskollisionen vermeiden.

HINWEIS :Diese Lösung funktioniert NICHT mit Redis Cluster . Redis Cluster erlaubt Ihnen nur die Verwendung der 0. Datenbank.

Lösung 3:Namensraum mit Schlüsselpräfix erstellen

Wenn alle Ihre Daten in einer einzigen Datenbank gespeichert werden müssen, können Sie immer noch implizit einen Namespace erstellen mit Schlüsselpräfix . Für jedes Modul sollten alle Daten dieses Moduls das gleiche Schlüsselmuster haben:ModuleName:KeyName , d.h. jeder Schlüssel dieses Moduls hat das gleiche Präfix:ModuleName .

Da jedes Modul einen anderen Namen hat, gibt es keine Namenskollisionen zwischen diesen Modulen:

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

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

HINWEIS :Diese Lösung funktioniert auch mit Redis Cluster .