如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

本文中,苏南大叔带大家学习的是node订阅和发布redis消息,原理很简单,涉及到的命令有如下几个,publishsubscribepsubscribeunsubscribepunsubscribe

相关代码

代码如下,注意替换redis连接信息为您真实的信息。

var redis = require('redis');

var client = redis.createClient("6379", "127.0.0.1", {auth_pass: "yoursecret"});
client.on('connect', function () {
    //client.hset("hash key", "field 1", "v1", redis.print);
    //client.hget("hash key", "field 1", redis.print);
    //client.quit();
});

var client1 = redis.createClient("6379", "127.0.0.1", {auth_pass: "yoursecret"});
client1.on('connect', function () {
    client1.subscribe("channel");
});
client1.on("message", function (channel, message) {
    console.log("普通订阅接收到来自" + channel + "的信息:" + message);
    if (message == "demo") {
        client.publish("demo","demo msg");
    }
    if (message == "quit1") {
        client1.unsubscribe("channel");
        console.log("普通订阅操作已经取消");
        //client2.quite();
    }
});

var client2 = redis.createClient("6379", "127.0.0.1", {auth_pass: "yoursecret"});
client2.on('connect', function () {
    client2.psubscribe("channel*");
});
client2.on("pmessage", function (p, channel, message) {
    console.log("批量订阅接收到来自" + channel + "的信息:" + message);
    if (message == "quit2") {
        client2.punsubscribe("channel*");
        console.log("批量订阅操作已经取消");
        //client2.quite();
    }
});

基本说明

这里出现的新概念就是批量订阅这个概念,就是说可以同时订阅多个频道,可以用正则表达式来进行匹配。相关的函数都多个p字,而接受消息的部分也有所不同。注意,这里批量订阅channel*的时候,在channel里面发布的消息,批量订阅也接收到了。

  • 普通订阅:subscribe, on("message",function(channel,message))unsubscribe
  • 批量订阅:psubscribe, on("pmessage",function(p,channel,message))punsubscribe
  • 发布订阅:publish

发布的时候,并没有批量和不批量的区分,就是channel的名字和值而已。订阅的时候,可以根据情况选择是否批量订阅。还有需要注意的时候,订阅及发布,都是需要单独的client的,一个client同时只能做一个事情,这也就是上面初始化了那么多client的原因。

大家可以试试看。下面是相关截图。

nodejs如何操作redis,如何订阅和发布消息 - demo

nodejs如何操作redis,如何订阅和发布消息(图1-1)

广而告之

欢迎大家关注苏南大叔的redis相关文章: https://newsn.net/tag/redis/
更多关于redisnpm包的使用问题,可以点击这里查看: https://npm.js.cn/package/redis

  【js】秘籍文章入口,仅传授于有缘之人  js

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

打赏领取小礼物

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/node-redis-subscribe-publish.html
上一篇好文:nodejs操作redis的hash集合
下一篇好文:利用.user.ini来临时关闭opcache以便php调试

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~