sql >> Base de Datos >  >> NoSQL >> Redis

Notificaciones Redis Keyspace con flushdb

Tal como se menciona en la otra respuesta, no existe tal notificación.

Después de todo, Notificación de espacio de teclas es una notificación de eventos en una llave única . Cada notificación está asociada a una clave. Para keyspace evento, el nombre de la clave es parte del nombre del canal. Para keyevent evento, el nombre clave es el mensaje.

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

Cada comando que envíe una notificación debe tener una clave como argumento. p.ej. del key , set key val . Sin embargo, el flushdb El comando no tiene clave como argumento. El comando no afecta a una sola tecla. En su lugar, elimina todas las claves de la base de datos. Entonces no hay tal notificación para eso. De lo contrario, ¿qué esperas del canal? ¿Todas las llaves que han sido removidas? No es una buena idea.

Sin embargo, puede simular un evento para flushdb

  1. establezca una clave especial, p. flushdb-event :set flushdb-event 0
  2. suscríbase en el canal correspondiente:subscribe [email protected]__:flushdb-event
  3. configure la clave especial antes de llamar a flushdb :set flushdb-event 1

De esta forma, puede obtener el flushdb simulado notificación.