【发布时间】:2013-10-19 04:01:11
【问题描述】:
我创建了一个名为redisConnection.js 的redis 客户端模块。其内容如下
var redis = require('redis').createClient();
exports.exposeConnection = function(){
return redis;
};
现在,每当我想使用 redis 时,我只需 require 模块并调用 exposeConnection 方法。我想知道这是否是重用连接的正确方法。我希望redis连接只被实例化一次,而不是每次我调用模块时。如果没有,有没有更好的方法重用它?
【问题讨论】:
-
真的不能说是不是“正确。”但是,Node 基于on their file path 执行cache modules。因此,只要您没有多个
redisConnection.js文件,就应该在所有require()s 中创建一个连接。 -
@JonathanLonowski 谢谢。模块缓存是我一直在寻找的。你能补充一个答案吗?
-
我知道这不是您问题的答案,但它可能是通过执行以下操作实现该客户端在整个应用程序中可访问的一种方法 -
var redis = require('redis'); GLOBAL._REDISCLIENT = redis.createClient(port, server); -
@Pranav 感谢您指出这一点。我不知道你可以在节点 js 中创建 GLOBAL 变量。
标签: node.js redis node-redis