sql >> Database >  >> NoSQL >> Redis

Redis Keyspace-meldingen met flushdb

Net zoals het andere antwoord vermeldde, is er geen dergelijke melding.

Immers, Keyspace-melding is een melding voor gebeurtenissen op een enkele toets . Elke melding is gekoppeld aan een sleutel. Voor keyspace gebeurtenis, maakt de sleutelnaam deel uit van de kanaalnaam. Voor keyevent gebeurtenis, de sleutelnaam is het bericht.

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

Elke opdracht die een melding verzendt, moet een sleutel als argument hebben. bijv. del key , set key val . Echter, de flushdb commando heeft geen sleutel als argument. De opdracht heeft geen invloed op een enkele toets. In plaats daarvan worden alle sleutels in de database verwijderd. Er is dus geen dergelijke melding voor. Wat verwacht je anders van het kanaal? Alle sleutels die zijn verwijderd? Het is geen goed idee.

U kunt echter een gebeurtenis simuleren voor flushdb

  1. stel een speciale sleutel in, b.v. flushdb-event :set flushdb-event 0
  2. abonneer je op het bijbehorende kanaal:subscribe [email protected]__:flushdb-event
  3. stel de speciale sleutel in voordat je flushdb aanroept :set flushdb-event 1

Op deze manier kunt u de gesimuleerde flushdb . krijgen melding.



  1. Mongoose -- Naam verzameling forceren

  2. Hoe documentvelden in mongo-shell te bekijken?

  3. Mongodb-query specifieke maand|jaar niet datum

  4. Woordenboek invoegen in MongoDB met c#-stuurprogramma