catbox-aerospike
v2.0.0
Published
Aerospike adapter for catbox
Readme
catbox-aerospike
Caching Adapter for Aerospike for catbox
Versions
v 2.x.x:node v 4.x.xandaerospike client v 2.x.xv 1.x.x:node v 4.x.xandaerospike client v 1.x.xv 0.x.x:node v 0.10.xandaerospike client v 1.x.x
Installation
$ npm install catbox-aerospike --saveOptions
hosts- Array of Aerospike serversaddr- Aerospike server hostname. Defaults to'127.0.0.1'.port- Aerospike server port or unix domain socket path. Defaults to3000.
partition- corresponds to Aerospike namespace. Defaults totestsegment- corresponds to Aerospike set. Defaults totest
NOTE Aerospike Namespaces are configured when the cluster is started, and cannot be created at runtime. Default Aerospike namespace is test. However, Catbox intializes adapters with default partition name catbox, if no partition name is configured. Please refer to Namespace Configuration to use appropriate namespace.
Initialization
const Hapi = require('hapi');
const server = new Hapi.Server({
cache: [
{
name: 'aeroCache',
engine: require('catbox-aerospike'),
partition: 'cache'
host: [
{
addr: '127.0.0.1',
port: 3000
}
]
}
]
});Using Glue Manifest JSON:
{
"server": {
"app": {
...
},
"connections": {
...
},
"cache": {
"name": "aeroCache"
"engine": "catbox-aerospike"
"partition": "cache"
"hosts": [
{
"addr": "127.0.0.1",
"port": 3000
}
]
}
},
"connections": {
...
},
"plugins": {
...
}
}Usage
const add = function (a, b, next) {
return next(null, Number(a) + Number(b));
};
server.method('sum', add, {
cache: {
cache: 'aeroCache',
expiresIn: 30 * 1000,
generateTimeout: 100
}
});
server.route({
path: '/add/{a}/{b}',
method: 'GET',
handler: function (request, reply) {
server.methods.sum(request.params.a, request.params.b, function (err, result) {
reply(result);
});
}
});Tests
The test suite expects an Aerospike server to be running on port 3000. Refer to Aerospike Installation guide OR run Aerospike server in a Docker container
// Running Aerospike Server
$ docker run -it -d -p 3000:3000 aerospike/aerospike-server
// Running Tests
$ npm test
