zoukankan      html  css  js  c++  java
  • 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);
    

      

  • 相关阅读:
    hexo常用命令笔记
    给hexo添加评论系统
    npm 使用代理
    几种网页重定向(自动跳转)的方法
    使用hexo搭建github博客
    在Pythonanywhere上部署Django
    Apache .htaccess语法之RewriteRule
    为Github项目创建文档
    Windows下WordPress搭建博客过程
    Windows下Discuz搭建论坛过程
  • 原文地址:https://www.cnblogs.com/arliang/p/Node_read_memcache.html
Copyright © 2011-2022 走看看