sql >> Databáze >  >> NoSQL >> Redis

Oznámení Redis Keyspace s flushdb

Stejně jako v druhé uvedené odpovědi neexistuje žádné takové oznámení.

Koneckonců, Oznámení Keyspace je upozornění na události na jediném klíči . Každé oznámení je spojeno s klíčem. Pro keyspace událost, název klíče je součástí názvu kanálu. Pro keyevent událost, název klíče je zpráva.

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

Každý příkaz, který odesílá upozornění, musí mít klíč jako argument. např. del key , set key val . Nicméně flushdb příkaz nemá žádný klíč jako argument. Příkaz neovlivňuje jedinou klávesu. Místo toho odebere všechny klíče v databázi. Takže pro to není žádné takové upozornění. Jinak, co od kanálu očekáváš? Všechny klíče, které byly odstraněny? Není to dobrý nápad.

Událost však můžete simulovat pro flushdb

  1. nastavit speciální klíč, např. flushdb-event :set flushdb-event 0
  2. přihlaste se k odběru na odpovídajícím kanálu:subscribe [email protected]__:flushdb-event
  3. před voláním flushdb nastavte speciální klíč :set flushdb-event 1

Tímto způsobem můžete získat simulovaný flushdb oznámení.



  1. Problémy se spouštěním příkladů v Meteoru

  2. Získat _id vloženého dokumentu v MongoDB?

  3. Získejte konkrétní část dokumentu

  4. Redis se váže na více než jednu IP