redisPub,redisSub,redisStore - 用于socket.io存储

时间:2014-08-02 19:00:15

标签: redis socket.io

以此示例代码:

//Redis Variables
var redis = require('socket.io/node_modules/redis');
var RedisStore = require('socket.io/lib/stores/redis');
var pub = redis.createClient();
var sub = redis.createClient();
var client = redis.createClient();
var redis_store = new RedisStore({
                        redisPub: pub,
                        redisSub: sub,
                        redisClient: client
                      });

io.configure(function(){
  io.set('store', redis_store);  
});

两个问题:

(1)pubsubclient都连接到同一个redis数据库,对吗?

(2)那么它们和redisPub,redisSub和redisClient究竟用于什么区别?

1 个答案:

答案 0 :(得分:1)

是的,它们都连接到同一个Redis实例,但它们对应于此实例的不同连接。

当您使用Redis pub / sub时,必须打开多个连接,因为一旦在给定连接上建立了订阅,就不可能将此连接用于其他任何连接:

  • sub用于订阅/取消订阅和接收通知消息
  • pub用于发布通知
  • 客户端用于get / set / del / has / destroy方法

我猜pub和客户端实际上可以使用相同的Redis连接。