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

Redis Keyspace-Benachrichtigungen mit flushdb

Genau wie in der anderen Antwort erwähnt, gibt es keine solche Benachrichtigung.

Immerhin Keyspace-Benachrichtigung ist eine Benachrichtigung für Ereignisse auf einem einzelnen Schlüssel . Jede Benachrichtigung ist einem Schlüssel zugeordnet. Für keyspace Event ist der Schlüsselname Teil des Kanalnamens. Für keyevent Ereignis, der Schlüsselname ist die Nachricht.

PUBLISH [email protected]__:key_name comamnd
PUBLISH [email protected]__:command key_name

Jeder Befehl, der eine Benachrichtigung sendet, muss einen Schlüssel als Argument haben. z.B. del key , set key val . Die flushdb Befehl hat keinen Schlüssel als Argument. Der Befehl wirkt sich nicht auf eine einzelne Taste aus. Stattdessen entfernt es alle Schlüssel in der Datenbank. Es gibt also keine solche Benachrichtigung dafür. Was erwartest du ansonsten von dem Kanal? Alle Schlüssel, die entfernt wurden? Das ist keine gute Idee.

Sie können jedoch ein Ereignis für flushdb simulieren

  1. einen speziellen Schlüssel setzen, z.B. flushdb-event :set flushdb-event 0
  2. Abonnieren Sie den entsprechenden Kanal:subscribe [email protected]__:flushdb-event
  3. setzen Sie den Sonderschlüssel, bevor Sie flushdb aufrufen :set flushdb-event 1

Auf diese Weise können Sie die simulierte flushdb erhalten Benachrichtigung.