redis中键空间通知

Posted 向着太阳生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis中键空间通知相关的知识,希望对你有一定的参考价值。

通过redis的键空间通知,当redis删除过期key的时候,及时更新mongodb数据库中user的状态

var Redis = require(‘ioredis‘);
var redis = new Redis();

redis.subscribe([email protected]__: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

 



以上是关于redis中键空间通知的主要内容,如果未能解决你的问题,请参考以下文章

使用 StackExchange.Redis 的 Redis 键空间通知

是否可以将 redis 键空间通知推送到 redis 流而不是 pub/sub 通道

Redis键空间通知(Keyspace Notifications)

通过redis键空间通知实现日程的提醒通知

Redis 小白指南- 事务过期消息通知管道和优化内存空间

redis中键的生存时间(expire)