我如何从 socket-io-redis 获取 redis 存储客户端?

How do i get the redis store client from socket-io-redis?

socket-io-redis 在内部使用 redis 连接,我想知道如何从库中获取 redis 存储客户端,以便我可以使用该客户端存储键值在 redis 中配对。

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

io = socketio.listen(app);    
io.adapter(redis({ host: 'localhost', port: 6379 }));

我正在使用节点集群模型,所以我不想创建一个新的 redis 客户端,因为我已经有一个。

已显示here:

var adapter   = redis({ host: 'localhost', port: 6379 });
var pubClient = adapter.pubClient;
io.adapter(adapter);

还有一个等效的 adapter.subClient,但您不应该使用它("subscribe" 模式下的客户端 运行 不应该用于常规 Redis 命令)。

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

var pubClient = adapter.pubClient.duplicate();