Redis是一个开源且支持持久化的Key-Value内存数据库,功能相当强大,用起来也简单,笔者几乎每个项目都会用到,
不过今天要说的是大家平常不怎么用到的"超时监听"。
"超时监听",顾名思义当某个Key值过期时,便会触发相应的事件,过期事件是通过Redis的订阅与发布功能(pub/sub)来进行分发,需要详细了解的朋友可以百度一下。
常规的事件,需要先发布相应的事件,然后在订阅,但key值超时不需要自己发布,只需要修改redis配置文件redis.conf:
找到 ”notify-keyspace-events Ex",将改行的注释去掉,如下图:
然后保存,重启redis,之后redis会对设置了expire的数据进行监听。
关于redis的事做完了,接下来的就是应用了,笔者今天选择的是NodeJS,其他语言大同小异。
首先,需要安装redis,用npm就可以,然后连接redis,并且绑定过期redis回调函数。
注:以下JS代码都是基于ES6的。
let pub = redis.createClient(6380);
pub.send_command('config', ['set', 'notify