nodejs如何操作redis,如何订阅和发布消息
发布于 作者:苏南大叔 来源:程序如此灵动~本文中,苏南大叔带大家学习的是node
订阅和发布redis
消息,原理很简单,涉及到的命令有如下几个,publish
,subscribe
,psubscribe
,unsubscribe
,punsubscribe
。
相关代码
代码如下,注意替换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
的原因。
大家可以试试看。下面是相关截图。
广而告之
欢迎大家关注苏南大叔的redis
相关文章: https://newsn.net/tag/redis/ 。
更多关于redis
的npm
包的使用问题,可以点击这里查看: https://npm.js.cn/package/redis 。



本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
《程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
《程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。
本站的忠实读者小伙伴,正在阅读下面这些文章: