1.0.1 • Published 9 years ago

toshihiko-memcached v1.0.1

Weekly downloads
9
License
MIT
Repository
github
Last release
9 years ago

Toshihiko Memcached (Cache Layout)

travis.ci coveralls License Dependency Status Toshihiko-Memcached Toshihiko-Memcached Commitizen friendly

The memcached support for Toshihiko as an addon.

Installation

$ npm install toshihiko-memcached --save

How to Use

When you define a Toshihiko, you could pass the object into cache option:

var T = require("toshihiko");
var toshihiko = new T.Toshihiko("database", "username", "", {
    cache: {
        name: "memcached",
        servers: [ "localhost:11211", ... ],
        options: { prefix: "_" }
    }
});

name must be memcached and then Toshihiko will search for the package toshihiko-memcached.

servers may be a string or an array stands for the server addresses.

options is the options for memcached, you can refer to https://github.com/3rd-Eden/node-memcached#options.

Otherwise, you may create this object by yourself and pass the created object into cached:

var Memcached = require("toshihiko-memcached");
var object = Memcached.create(SERVRES, OPTIONS);
var toshihiko = new T.Toshihiko(DATABASE, USERNAME, PASSWORD, {
    cache: object
});

or

var Memcached = require("toshihiko-memcached");
var object = new Memcached(SERVRES, OPTIONS);
var toshihiko = new T.Toshihiko(DATABASE, USERNAME, PASSWORD, {
    cache: object
});

And then you may enjoy the cache layer of Toshihiko!

Customize Key Generate Function

A new feature for memcached is that you can custom your memcached key generate function now!

You may pass the function at the very beginning:

new Memcached(servers, { custormizeKey: function(db, table, keys) { return ...; } });

Another way is you can pass throw the function below:

memcached.setCustomizeKeyFunc(function(db, table, keys) { return ...; });

You should pay attention to db, table and keys which stand for database name, table name, primary keys with their value.

keys maybe a single value (when typeof keys !== "object"); it maybe an object contains key-value pairs key name -> value.

Eg.

{ "userId": 12, "boardId": 12 }

So here's an example customize function:

function(db, table, keys) {
    var base = this.prefix + db + "_" + table;
    if(typeof keys !== "object") return base + ":" + keys;

    for(var key in keys) {
        base += ":";
        base += key;
        base += keys[key];
    }

    return base;
}

Contribution

You're welcome to make pull requests or issues!

「雖然我覺得不怎麼可能有人會關注我」

1.0.1

9 years ago

1.0.0

10 years ago

0.1.0

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago