Node.js 如何从socket io redis获取redis store客户端?

Node.js 如何从socket io redis获取redis store客户端?,node.js,socket.io,node-redis,Node.js,Socket.io,Node Redis,socket io redis使用redis inside进行连接,我想知道如何从库中获取redis store客户端,以便使用该客户端在redis中存储键值对 var redis = require('socket.io-redis'); var socketio = require('socket.io'); io = socketio.listen(app); io.adapter(redis({ host: 'localhost', port: 6379 })); 我使用

socket io redis使用redis inside进行连接,我想知道如何从库中获取redis store客户端,以便使用该客户端在redis中存储键值对

var redis   = require('socket.io-redis');
var socketio = require('socket.io');

io = socketio.listen(app);    
io.adapter(redis({ host: 'localhost', port: 6379 }));
我使用的是节点集群模型,所以我不想创建一个新的redis客户端,因为我已经有了一个

如图所示:

还有一个等效的
适配器.subClient
,但您不应该使用它(在“订阅”模式下运行的客户端不应该用于常规的Redis命令)

我也不确定使用
pubClient
发出命令是否明智。Redis可以很好地处理多个连接,并且可以很容易地从
pubClient
实例创建新的客户端:

var pubClient = adapter.pubClient.duplicate();

我认为拥有多个连接不是一个明智的选择,它会减慢redis的速度,但由于我的疑虑已经消除,我宁愿创建一个新的redis客户端。像这样创建一个新的客户端需要('redis')。createClient(主机,端口)之间有什么区别吗;与从pubClient创建它相比?@bikash唯一的区别是,在使用
duplicate()
时,您不必再次传递连接选项(服务器、凭据等)。除此之外,一切都一样。
var pubClient = adapter.pubClient.duplicate();