Listen Keyspace Notifications
Upstash allows you to listen for keyspace notifications over pubsub channels to receive events for changes over the keys.
For each event that occurs, two kinds of events are fired over the corresponding pubsub channels:
- A keyspace event that will use the pubsub channel for the key, possibly containing other events for the same key
- A keyevent event that will use the pubsub channel for the event, possibly containing other events for the different keys
The channel names and their content are of the form:
__keyspace@0__:keyname
channel with the values of the event names for the keyspace notifications__keyevent@0__:eventname
channel with the values of the key names for the keyevent notifications
Enabling Notifications
By default, all keyspace and keyevent notifications are off. To enable it, you can use
the CONFIG SET
command, and set the notify-keyspace-events
options to one of the
appropriate flags described below.
Each keyspace and keyevent notification fired might have an effect on the latency of the commands as the events are delivered to the listening clients and cluster members for multi-replica deployments. Therefore, it is advised to only enable the minimal subset of the notifications that are needed.
Flag | Description |
---|---|
K | Keyspace events |
E | Keyevent events |
g | Generic command events |
$ | String command events |
l | List command events |
s | Set command events |
h | Hash command events |
z | Sorted set command events |
t | Stream command events |
d | Module(JSON) command events |
x | Expiration events |
e | Eviction events |
m | Key miss events |
n | New key events |
A | Alias for g$lshztxed |
At least one of the K
or E
flags must be present in the option value.
For example, you can use the following command to receive keyspace notifications only for the hash commands:
You can listen for all the channels using redis-cli to test the effect of the above command:
Disabling Notifications
You can reuse the CONFIG SET
command and set notify-keyspace-events
option to empty string
to disable all keyspace and keyevent notifications.
Checking Notification Configuration
CONFIG GET
command can be used the get the current value of the notify-keyspace-events
option
to see the active keyspace and keyevent notifications configuration.
Was this page helpful?