उह, ऐसा लगता है कि वे प्रत्येक क्लाइंट के लिए एक रेडिस कनेक्शन बना रहे हैं। यह निश्चित रूप से अनुशंसित नहीं है।
रेडिस एक डेटाबेस है। यह MySQL की तरह है। आप इसे क्लाइंट के माध्यम से एक्सेस कर सकते हैं, लेकिन यह आपके सर्वर पर चलने वाला प्रोग्राम है। डेटा इसके द्वारा नियंत्रित किया जाता है, इसलिए आपको इसके बारे में चिंता करने की ज़रूरत नहीं है कि यह कहाँ है। यदि आप चिंता करते हैं, तो आप रेडिस कॉन्फ़िगरेशन देख सकते हैं। अधिक जानकारी यहाँ:http://redis.io (डॉक्टर वास्तव में अच्छा है)।
कोड को "ठीक" करने के लिए, और केवल एक क्लाइंट का उपयोग करने के लिए, आपको इसे इस तरह उपयोग करना होगा:
/**
* Move this at the top, this way it's not run once per client,
* it is run once the node program is launched.
*/
var r = redis.createClient();
var addSnippet = function( req, res ) {
getPostParams( req, function( obj ) {
r.stream.on( 'connect', function() {
r.incr( 'nextid' , function( err, id ) {
r.set( 'snippet:'+id, JSON.stringify( obj ), function() {
var msg = 'The snippet has been saved at <a href="/'+id+'">'+req.headers.host+'/'+id+'</a>';
res.respond( msg );
} );
} );
} );
});
};