Write a server supports memcached protocol
https://npmjs.org/package/memcached-protocol-server
https://github.com/tokuhirom/memcached-protocol-server
I shipped new 'memcached-protocol-server' library to npm registry.
You can write a server supports memcached protocol very easily!! in callback style.
Here is a concrete example for this library.
/** * This is an example server to implement memcached like on-memory KVS * with MemcachedProtocolServer. */ var Server = require('../index.js').Server; var port = process.argv[2] || 22422; var server = new Server(); server.on('error', function (e) { console.log("# Socket error!!: " + e); }); server.on('end', function () { console.log("# END!!"); }); server.setHandlers({ GET: function (sock, keys) { var self = this; keys.forEach(function (key) { if (self.storage[key]) { var entry = self.storage[key]; sock.sendValue(key, entry[0], entry[1]); } }); sock.sendEnd(); }, SET: function (sock, key, flags, exptime, data, noreply) { var self = this; self.storage[key] = [flags, data]; if (!noreply) { sock.sendStored(); } }, DELETE: function (sock, key, noreply) { if (this.storage[key]) { delete this.storage[key]; if (!noreply) { sock.sendDeleted(); } } else { if (!noreply) { sock.sendNotFound(); } } }, DECR: function (sock, key, value, noreply) { if (this.storage[key]) { var v = parseInt(this.storage[key][1], 10); this.storage[key][1] = '' + (v - value); if (!noreply) { sock.write(''+(v-value)+"\r\n"); } } else { if (!noreply) { sock.sendNotFound(); } } }, INCR: function (sock, key, value, noreply) { if (this.storage[key]) { var v = parseInt(this.storage[key][1], 10); this.storage[key][1] = '' + (v + value); if (!noreply) { sock.write(''+(v+value)+"\r\n"); } } else { if (!noreply) { sock.sendNotFound(); } } }, VERSION: function (sock) { sock.sendVersion("4649"); }, FLUSH_ALL: function (sock, delay, noreply) { this.storage = {}; if (!noreply) { sock.sendOK(); } } }); server.storage = {}; server.listen(port);
Enjoy!