我正在開發一個node.js應用程序,而且我需要沉重的Redis使用。該應用程序將在8個CPU內核上執行cluster
。我應該在文件/模塊之間共享Redis連接嗎?
現在我有100個併發連接到Redis,因爲每個CPU的每個工作人員都有幾個運行require('redis').createClient()
的模塊。
情形A:
file1.js:
var redis = require('redis').createClient();
file2.js
var redis = require('redis').createClient();
SCENARIO 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
@akonsu你可以舉一個連接池 – PirateApp