redis中键空间通知
通过redis的键空间通知,当redis删除过期key的时候,及时更新mongodb数据库中user的状态
var Redis = require('ioredis'); var redis = new Redis(); redis.subscribe('__keyevent@0__:expired',function(err,count){}) //订阅key过期事件 redis.on('message',function(channel,message){ //对redis的操作的客户端不能是订阅消息的客户端 var redis2 = new Redis(); redis2.hget('user',message).then(function(user){ if(!user){ return console.log(user) } try{ var user = JSON.parse(user); }catch(e){ console.log(e.message) } userModel.update({name:user.name},{$set:{status:0}},function(err){ if(!err){ console.log(user.name +'用户状态修改成功') } }) }) })
//注意要在配置文件中开启键空间通知 notify-keyspace-events Ex