Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Redis Keyspace Notifications com flushdb


Assim como a outra resposta mencionada, não há essa notificação.

Afinal, Notificação de Keyspace é uma notificação para eventos em uma chave única . Cada notificação está associada a uma chave. Para keyspace evento, o nome da chave faz parte do nome do canal. Para keyevent evento, o nome da chave é a mensagem.
PUBLISH [email protected]__:key_name comamnd
PUBLISH [email protected]__:command key_name

Cada comando que envia uma notificação deve ter uma chave como argumento. por exemplo. del key , set key val . No entanto, o flushdb comando não tem chave como argumento. O comando não afeta uma única chave. Em vez disso, ele remove todas as chaves do banco de dados. Portanto, não há essa notificação para isso. Caso contrário, o que você espera do canal? Todas as chaves que foram removidas? Não é uma boa ideia.

No entanto, você pode simular um evento para flushdb
  1. defina uma chave especial, por exemplo flushdb-event :set flushdb-event 0
  2. inscreva-se no canal correspondente:subscribe [email protected]__:flushdb-event
  3. defina a chave especial antes de chamar flushdb :set flushdb-event 1

Dessa forma, você pode obter o flushdb simulado notificação.