Redis Keyspace Notifications with flushdb

前端 未结 3 1261
余生分开走
余生分开走 2021-01-17 04:17

The keyspace notifications have been essential for a recent web api I\'ve been developing.

We have redis setup in azure. The api mostly works, we use notifications t

3条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-17 04:23

    Just as the other answer mentioned, there's no such notification.

    After all, Keyspace Notification is a notification for events on a single key. Each notification is associated with a key. For keyspace event, the key name is part of the channel name. For keyevent event, the key name is the message.

    PUBLISH __keyspace@0__:key_name comamnd
    PUBLISH __keyevent@0__:command key_name
    

    Each command that sending a notification must have a key as argument. e.g. del key, set key val. However, the flushdb command has no key as argument. The command doesn't affect a single key. Instead, it removes all keys in the database. So there's no such notification for it. Otherwise, what do you expect from the channel? All keys that have been removed? It's not a good idea.

    However, you can simulate an event for flushdb

    1. set a special key, e.g. flushdb-event: set flushdb-event 0
    2. subscribe on the corresponding channel: subscribe __keyspace@0__:flushdb-event
    3. set the special key before you call flushdb: set flushdb-event 1

    In this way, you can get the simulated flushdb notification.

提交回复
热议问题