前言
Redis2.8 后可以通过键空间通知(设置 notify-keyspace-events)接收那些以某种方式改变了Redis数据空间的事件通知,关于 Redis 键空间通知的文章有很多,这里只是记录个人在 Redis-x64-3.2 版本下实现过程中出现的问题。
具体实现
键空间通知设置的两种方式
1.命令行设置
- redis启动后进入redis-cli模式
- 命令行设置 notify-keyspace-events
config set notify-keyspace-events Ex
- Ex说明
Ex,E(Keyevent events)代表键事件通知,x(Expired events)代表过期事件,每当有过期键被删除时发送
- 注:该设置会在 redis 终端关闭后失效
2.修改配置文件 redis.windows.conf
- 修改键空间通知事件 notify-keyspace-events
修改 - 887行 notify-keyspace-events Ex // 取消注释
修改 - 892行 notify-keyspace-events "" // 注释
- 注意事项:
1、notify-keyspace-events "" 为默认配置,需注释,否则键空间通知无法生效
2、notify-keyspace-events Ex 需顶格(不能有空格),否则启动会报错 " Invalid argument during startup: unknown conf file parameter "
Redis-x64-3.2 键空间通知的操作
- 启动reids
redis-server ./redis.windows.conf
- 新打开一个终端,添加过期事件订阅
redis-cli
psubscribe __keyevent@0__:expired
- 新打开一个终端,添加过期事件
redis-cli
setex name 10 coisini // 添加一个 key为name 过期时间为10s 值为coisini 的键
- 添加过期事件订阅经10秒后输出如下信息:
- Then:过期Key订阅成功了。