redis高级功能-超时触发事件
你想知道Redis中哪些key过期了?
哪些key被淘汰了吗?
—Redis中notify-keyspace-events的作用。
问题提出
在和朋友讨论订单超时未支付自动关闭的实现时,考虑了一下几种方式
- Quartz 任务调度框架,更适合周期性的执行任务,对于订单超时未支付,只能采用5分钟一轮询数据库的形式实现
- Timer java原生定时工具,可少量使用,当数据量大时,性能不好控制
- Quartz + Timer 周期轮询(5分钟)数据库,查询出5分钟之内将要超时的订单,然后多线程创建timer完成订单的定时,这种实现方式比较复杂,但是可以在性能和功能方面,是可以实现的
- reids 键空间通知 以下将介绍此种方式
一、配置意义
Redis中默认的notify-keyspace-events的配置值为空。
可以的配置值如下:
notify-keyspace-events 的参数可以是以下字符的任意组合,它指定了服务器该发送哪些类型的通知:
| 字符 | 发送的通知 |
|---|---|
| K | 键空间通知,所有通知以__keyspace@__ 为前缀 |
| E | 键事件通知,所有通知以 __keyevent@__ 为前缀 |
