DBAtlas · 数据库运维图谱

用 keyspace 通知监控 key 删除和过期事件

Redis维护

命令

CONFIG GET notify-keyspace-events
# E: keyevent channel, x: expire events, g: generic commands (DEL, EXPIRE, RENAME):
CONFIG SET notify-keyspace-events Exg
# Listen to expire and del events in db 0:
redis-cli -h redis1 -p 6379 --csv PSUBSCRIBE '__keyevent@0__:expired' '__keyevent@0__:del'
# Turn off:
CONFIG SET notify-keyspace-events ""

作用

把 key 上的事件(expire、del、set 等)发布到 pub/sub 频道,从而实时观察哪个 key 在何时被删除或过期。

适用场景

用于证明 key“自行消失”时是哪条命令或过期操作删除了它们,或为依赖过期事件的工作流(会话关闭)提供输入。

注意

事件会增加 CPU 和网络负载;在繁忙系统上 'A'(所有类别)尤其昂贵,因此只启用需要的类别,用完后关闭。Pub/sub 是发后即忘的:未连接的订阅者会错过事件,且不会持久化任何内容。expired 事件是在 key 被实际删除时(访问时或由后台过期周期删除)产生的,而不是在 TTL 到期的那一刻。

在 DBAtlas 中打开 →

相关内容