NODEJS(15)Platform - memcached
1. memcached Introdution
This is a nodeJS client driver, node-memcached.
It is using consistent hashing, oh, my old days, I use memcached when this algorithm is not implemented, I implemented it myself once.
It is using the ASCII protocol, oh, I used to heard that long time ago, it plans to use binary protocol. But till now, it is not binary, the good things for this is we can see what is send over the wire.
There are punch of options to define a Memcached Instance.
maxKeySize, maxExpiration, maxValue, poolSize, algorithm, reconnect, timeout, retries, failures, retry, failOverServers,
keyCompression, idle
Define the Memcached with option
var memcached = new Memcached(‘localhost:11211’, {retries:10, retry:10000, remove:true, failOverServers:[“localhost:11212”]});
Public Methods
memcached.touch(key,lifetime,callback) lifetime is measured by seconds
memcached.get(key, callback)
memcached.get(‘foo’, function(err, data){
console.log(data);
});
memcached.getMulti(keys, callback)
memcached.getMulti([‘foo’,’bar’], function(err, data){
console.log(data.foo + data.bar);
});
memcached.set(key, value, lifetime, callback)
memcached.set(‘foo’,’bar’,10,function(err){ });
memcached.replace(key, value, lifetime, callback)
memcached.replace(‘foo’, ‘bar’, 10, function(err){ });
memcached.del(key, callback)
memcached.end
2. How I Use It
Add the dependencies
{
"name": "buglist",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "4.2.0",
"body-parser": "1.2.0",
"generic-pool": "2.0.4",
"mongodb": "1.4.5",
"log4js": "0.6.14",
"memcached": "0.2.8"
}
}
Using Memcached
var Memcached = require('memcached');
var memcached = new Memcached({'127.0.0.1:11211': 1, '127.0.0.1:11212': 1 })
memcached.get("bugs", function(err, data){
if(data != false){
logger.debug("hitting the memached =" + data + "!");
res.json(data);
}else{
logger.debug("missing the memached!");
db.collection('bugs').find({}).toArray(function(err, bugs){
if (err) res.json(500, err);
else {
logger.debug("setting the memached!");
memcached.set("bugs", bugs ,120,function(err){
if(err != undefined) res.json(500, err);
});
res.json(bugs);
}
pool.release(db);
});
}
});
Here is the log, first miss, second hit
[2014-05-30 17:26:15,776] [DEBUG] [M] missing the memached!
[2014-05-30 17:26:15,778] [DEBUG] [M] setting the memached!
[2014-05-30 17:26:15,780] [INFO ] [M] 127.0.0.1 - - "GET /bugs HTTP/1.1" 200 130 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36"
[2014-05-30 17:26:22,356] [DEBUG] [M] hitting the memached =[object Object]! [2014-05-30 17:26:22,358] [INFO ] [M] 127.0.0.1 - - "GET /bugs HTTP/1.1" 200 130 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36"
References:
https://github.com/3rd-Eden/node-memcached
Graceful closing and Process
http://heyrod.com/snippet/s/node-js-process-on-sigint.html
http://nodejs.org/api/process.html
Nodejs request package
https://github.com/mikeal/request
相关推荐
微信小游戏-斗地主,包含nodejs-服务器-nodejs-server-wechat-landLordGame
nodeJS-----安装包
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
cos-nodejs-sdk-v5腾讯云 COS Nodejs SDK()installnpm i cos-nodejs-sdk-v5 --savedemo// 引入模块var COS = require('cos-nodejs-sdk-v5');// 创建实例var cos = new COS({ SecretId: '...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
learn-nodejs-building-6-projects learn-nodejs-building-6-projects
微信小游戏斗地主小游戏源码,前端加nodejs-服务器nodejs-server-wechat-landLordGame-master.zip
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
nodejs-microservice-starter, NodeJS RESTful API Microservice Starter NodeJS RESTful API Microservice v1.2.0这个存储库包含运行 NodeJS rest式 API Microservice启动器的完整配置。 要求NodeJS用于本地开
DigitalOcean-Nodejs-Deployment--源码.rar
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
Nodejs-API-中文文档.pdf
前端开源库-nodejs-linked-listnodejs链接列表,nodejs链接列表
nodejs-weather-forecast-源码.rar
nodejs-starter-kit-源码.rar
nodejs-api-multidb-源码.rar
nodejs-mongo-mongoose-master.rar