node-memcache

node.js memcached client

  • Owner: elbart/node-memcache
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

node.js memcached client

A pure-JavaScript memcached library for node.

Tests

To run the test suite, first insall expresso,
then run make test.

If you have node-jscoverage you can
also make test-cov for coverage, but that's pretty nerdy.

Usage

Create a Client object to start working.
Host and port can be passed to the constructor or set afterwards.
They have sensible defaults.

var memcache = require('./memcache');

var client = new memcache.Client(port, host);
client.port = 11211;
client.host = 'localhost';

The Client object emits 4 important events - connect, close, timeout and error.

client.on('connect', function(){
	// no arguments - we've connected
});

client.on('close', function(){
	// no arguments - connection has been closed
});

client.on('timeout', function(){
	// no arguments - socket timed out
});

client.on('error', function(e){
	// there was an error - exception is 1st argument
});

// connect to the memcache server after subscribing to some or all of these events
client.connect()

After connecting, you can start to make requests.

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'

});

client.set('key', 'value', function(error, result){

	// lifetime is optional. the default is
	// to never expire (0)

}, lifetime);

client.delete('key', function(error, result){

	// delete a key from cache.
});

client.version(function(error, result)){

	// grab the server version
});

There are all the commands you would expect.

// all of the different "store" operations
// (lifetime & flags are both optional)
client.set(key, value, callback, lifetime, flags);
client.add(key, value, callback, lifetime, flags);
client.replace(key, value, callback, lifetime, flags);
client.append(key, value, callback, lifetime, flags);
client.prepend(key, value, callback, lifetime, flags);
client.cas(key, value, unique, callback, lifetime, flags);

// increment and decrement (named differently to the server commands - for now!)
// (value is optional, defaults to 1)
client.increment('key', value, callback);
client.decrement('key', value, callback);

// statistics. the success argument to the callback
// is a key=>value object
client.stats(callback);
client.stats('settings', callback);
client.stats('items', callback);
client.stats('mongeese', callback);

Once you're done, close the connection.

client.close();

There might be bugs. I'd like to know about them.

I bet you also want to read the memcached
protocol doc. It's exciting! It also explains possible error messages.

Main metrics

Overview
Name With Ownerelbart/node-memcache
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
Platform
License:
所有者活动
Created At2010-01-16 09:19:11
Pushed At2018-12-04 00:39:33
Last Commit At2012-12-30 02:15:29
Release Count1
Last Release Name0.1.0 (Posted on )
First Release Name0.1.0 (Posted on )
用户参与
Stargazers Count284
Watchers Count15
Fork Count63
Commits Count81
Has Issues Enabled
Issues Count24
Issue Open Count15
Pull Requests Count7
Pull Requests Open Count11
Pull Requests Close Count4
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private