【发布时间】:2014-10-12 07:02:44
【问题描述】:
我正在开发一个 node.js 应用程序,我需要大量使用 Redis。该应用程序将在 8 个 CPU 内核上clustered。
现在我有 100 个到 Redis 的并发连接,因为每个 CPU 的每个工作人员都有几个运行 require('redis').createClient() 的模块。
场景 A:
file1.js:
var redis = require('redis').createClient();
file2.js
var redis = require('redis').createClient();
场景 B:
redis.js
var redis = require('redis').createClient();
module.exports = redis;
file1.js
var redis = require('./redis');
file2.js
var redis = require('./redis');
哪种方法更好:在我引入的每个新文件中创建新的 Redis 实例(场景 A)或全局创建一个 Redis 连接(场景 B)并在我拥有的所有模块之间共享此连接。每种解决方案的缺点/优点是什么?
提前致谢!
【问题讨论】:
-
也许连接池可以同时满足这两种情况?
-
@akonsu 你能举个那个连接池的例子吗