Hi,为确保您的账号安全,请大家修改登陆密码为包含大小写字母、标点、数字的复合密码,不要使用过于简单的登陆密码。
您当前的位置:首页 :: Nodejs

nodejs之memcached链接池小编奉献上,可直接使用

时间:2016-10-03 13:10:23  来源:  作者:

 nodejs之memcached连接池:

/**
 * memcached 连接池
 **/
var options = {
    //'host': ['localhost:11211'],
    'host': 'localhost:11211',
    'connectionLimit': '2',
    'timeout' : 50000
};
var poolModule = require('generic-pool');
console.log("init pool for memcached start..");
var pool = poolModule.Pool({
	name : 'memcached',
	create : function(callback){
		var Memcached = require('memcached');
		memcached = new Memcached(options.host, {debug: true});
		memcached.on("failure", function (detail) {})
                 .on('connect', function (detail) {})
                 .on('reconnect', function (detail) {})
                 .on('reconnecting', function (detail) {})
                 .on('remove', function (detail) {})
                 .on('issue', function (detail) {});
		callback(null, memcached);
	},
	destory : function(client){
        if(client.connected){
            try{
                client.end();
            }
            catch(err){
                console.log('Failed to memcached connection: ' + err);
            }
        }
    },
    max : options.connectionLimit,
    idleTimeoutMillis : options.timeout,
    log : false
});
console.log("init pool for memcached end....");

exports.set = function(key, val, expire, callback){
	pool.acquire(function(err, client){
		if(err){
            callback(err);
            return;
        }
        if(!expire) expire = 172800;
        client.set(key, val, expire, function(err, data){
        	pool.release(client);
            if(err){
                callback(err, null);
                return;
            }
            callback(err, data);
        });
	});
};

exports.get = function(key, callback){
	pool.acquire(function(err, client){
		if(err){
            callback(err);
            return;
        }
        client.get(key, function(err, data){
        	pool.release(client);
            if(err){
                callback(err, null);
                return;
            }
            callback(err, data);
        });
	});
};

 

过期时间什么的,自己看着修改就行了。

举报
收藏0次 / 评论0
评论(0)
还可以输入 2000 个字符
还可以输入 2000 个字符
取消回复
举报×

还可以输入 264 字符

收藏(0)×