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@__
为前缀