2017-08-17 1 views
2

Szenario: Zwei Instanzen einer Anwendung teilen sich die gleiche Redis-Instanz, verwenden jedoch unterschiedliche Datenbanken. Die Anwendung nutzt die Redis-Pub/Sub-Funktionen, um Daten zwischen Diensten auszutauschen.Gibt es eine Möglichkeit, zwei redis-Datenbanken für die Pub/Sub-Nutzung vollständig zu trennen?

Problem: Wenn die Anwendungsinstanz A etwas veröffentlicht (in der Redis-Datenbank 1), empfängt die Anwendungsinstanz B (die in der Redis-Datenbank 2 ausgeführt wird) die Nachricht.

Erwartung: Da beide Instanzen der Anwendung eine andere Datenbank verwenden, würde ich nicht nur erwarten, dass die Schlüssel in Redis separat gehalten werden, sondern auch Pub/Sub-Abonnenten.

Frage: Kann ich Redis sagen, Pub/Sub getrennt für jede Datenbank zu halten?

Antwort

2

Nein - PubSub wird für alle Clients freigegeben, die mit dem Server verbunden sind, unabhängig von ihrer aktuellen SELECT Ed-Datenbank (gemeinsam genutzte Datenbank/nummerierte Datenbank/Schlüsselbereich). Während Sie verschiedene Kanäle und dergleichen verwenden können, ist eine echte Trennung nur durch Verwendung von zwei Redis-Instanzen möglich.

Hinweis: Die Verwendung von freigegebenen/nummerierten Datenbanken wird nicht empfohlen - verwenden Sie immer dedizierte Redis-Instanzen pro App/Service/Anwendungsfall

Verwandte Themen