栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Redis键空间事件未触发

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis键空间事件未触发

您忘记了订阅用户客户端订阅特定的频道。此外,如果要监视所有事件,则需要使用基于模式的订阅。

您可能想要执行以下操作(未测试):

subscriber.on("pmessage", function (pattern, channel, message) {    console.log("("+  pattern +")" + " client received message on " + channel + ": " + message);    switch (channel) {        // blah blah blah        // ...    }});subscriber.psubscribe(''__key*__:*')

请参阅Redis文档和node_redis示例中的更多信息。

更新:

这是一个示例,说明了频道订阅和模式订阅之间的区别。为了简洁起见,省略了正确的错误处理。

var redis = require("redis");var client = redis.createClient('6379','127.0.0.1');var subscriber1 = redis.createClient('6379','127.0.0.1');var subscriber2 = redis.createClient('6379','127.0.0.1');// First subscriber listens only to events occurring for key mykeyfunction S1(next) {    subscriber1.on('message', function(channel, msg) {        console.log( "S1: received on "+channel+" event "+msg )    });    subscriber1.subscribe( "__keyspace@0__:mykey", function (err) {        next();    });}// Second subscriber listens to events occuring for ALL keysfunction S2(next) {    subscriber2.on('pmessage', function(pattern,channel, msg) {        console.log( "S2: received on "+channel+" event "+msg )    });    subscriber2.psubscribe( "__keyspace@0__:*", function (err) {        next();    });}// Do something with keys mykey and anotherkeyfunction do_something() {    client.set("mykey","example", function( err ) {        client.set("mykey", "another example", function( err ) { client.del("mykey", function( err ) {     client.set("anotherkey","example", function( err ) {         client.del("anotherkey");     }); });        });    });}// Here we goS1( function () {    S2( function () {        do_something();    });});

该脚本的结果是:

S1: received on __keyspace@0__:mykey event setS2: received on __keyspace@0__:mykey event setS2: received on __keyspace@0__:mykey event setS1: received on __keyspace@0__:mykey event setS1: received on __keyspace@0__:mykey event delS2: received on __keyspace@0__:mykey event delS2: received on __keyspace@0__:anotherkey event setS2: received on __keyspace@0__:anotherkey event del

您可以看到第一个订阅者仅接收了mykey事件,而第二个订阅者接收了所有关键字事件。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399480.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号