nodeJs 读取memcache
var memcache = require('memcache') , http = require('http') , url = require('url') , qs = require('querystring') , memsettings = { port: 2000, host: '10.6.0.6' } , httpsettings = { port: 3000 } , cacheObject = {} , httpserver , client , requestHandler; client = new memcache.Client(memsettings.port, memsettings.host); //... client.on('connect', function(){ client.connected = true; }); client.on('close', function(){ // no arguments - connection has been closed client.connected = false; }); function getData(key, wrapper, res){ client.get(key, function(error, result){ // all of the callbacks have two arguments. // 'result' may contain things which aren't great, but // aren't really errors, like 'NOT_STORED' if(!error){ if(result){ cacheObject[key] = result; res.write( wrapper + '(' + result + ')'); } else { res.write('no data'); } res.end(); } }); /*if(cacheObject[key]){ response.write(cacheObject[key]); response.end(); } else { client.get(key, function(error, result){ // all of the callbacks have two arguments. // 'result' may contain things which aren't great, but // aren't really errors, like 'NOT_STORED' if(!error){ cacheObject[key] = result; cacheObject[key]['timeoutId'] = setTimeout(function(){ client.get(key, function(error, result){ if(!error){ cacheObject[key] = result; } }); }); response.write(result); response.end(); } }); }*/ } httpserver = http.createServer(function(req, res){ var urlObj, queryObj; urlObj = url.parse(req.url); res.writeHead(200, {"Content-Type":"text/javascript; charset=utf-8"}); queryObj = qs.parse(urlObj.query); path = queryObj.pathname; if(queryObj.gid){ getData(queryObj.gid, queryObj.callback||'callback', res); } else { res.write('no input'); res.end(); } /* switch(urlObj.pathname){ case '/pai': res.write(urlObj.pathname); break; case '/qiang': res.write(urlObj.pathname); break; default: res.write('default'); break; } res.end(); */ }); client.connect(); httpserver.listen(httpsettings.port); console.log('http server listening on ' + httpsettings.port);
作者:阿良
出处:http://www.cnblogs.com/arliang
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议
进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。