cacheman with a promise interface.
npm install cacheman-promise[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]   

[npm-url]: https://www.npmjs.org/package/cacheman-promise
[npm-image]: http://img.shields.io/npm/v/cacheman-promise.svg
[downloads-image]: http://img.shields.io/npm/dm/cacheman-promise.svg
Cacheman library with a promise interface.
```
$ npm install --save cacheman-promise
Cacheman-promise only support set, get, del, clear, pull and wrap promise interface.
Please refer to Cacheman Options API
`javascript
var Cacheman = require('cacheman-promise');
var options = {
ttl: 90,
engine: 'redis',
port: 9999,
host: '127.0.0.1'
};
var cache = new Cacheman('todo', options);
// or
var cache = new Cacheman(options);
`
Usage:
`javascript
var key = 'foo';
var data = 'bar';
cache.set(key, {name: data})
.then(function(val){
// output "{name: 'bar'}"
console.log(val);
});
`
You can pass array or string as key.
Usage:
`javascript
cache.set('foo', 'bar');
cache.get('foo')
.then(function(val){
// output "bar"
console.log(val);
});
`
pass array as multiple keys
Usage:
`javascript
cache.set('foo', 1);
cache.set('bar', 2);
cache.get(['foo', 'bar'])
.then(function(result){
// output {"foo": 1, "bar": 2}
console.log(result);
});
`
If you need to retrieve an item from the cache and then delete it, you may use the pull method. Like the get method, null will be returned if the item does not exist in the cache.
`javascript
cache.set('foo', 'bar');
cache.pull('foo')
.then(function(result){
// output 'bar'
console.log(result);
}).then(function() {
return cache.get('foo');
}).then(function(result) {
// output 'null'
console.log(result);
});
`
You can pass default value as second paramaeter if the item doesn't exist in the cache.
`javascriptfoo
// make sure cache doesn't exist.
cache.del('foo');
cache.pull('foo', 'bar')
.then(function(result){
// output 'bar'
console.log(result);
});
`
You can pass array or string as key.
Usage:
`javascript`
cache.del('foo')
.then(function(){
console.log('foo was deleted');
});
or
`javascript`
cache.del(['foo', 'bar'])
.then(function(){
console.log('foo and bar was deleted');
});
Clear some items with prefix name:
`javascriptfoo
cache.clear('foo*')
.then(function(){
console.log('clear cache with prefix name like foo1, foo2 etc.');`
});
Clear all cache as follwoing:
`javascript`
cache.clear()
.then(function(){
console.log('cache is now clear');
});
Wraps a function in cache. I.e., the first time the function is run, its results are stored in cache so subsequent calls retrieve from cache instead of calling the function.
`javascript
var key = 'foo';
var data = 'bar';
cache.wrap(key, data)
.then(function(val) {
// get foo key from cache
return cache.get(key);
}).then(function(val) {
// output 'bar'
console.log(val);
});
`
```
$ npm test