Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ktmud/storeman
Get an unified API for various storage client.
https://github.com/ktmud/storeman
Last synced: about 1 month ago
JSON representation
Get an unified API for various storage client.
- Host: GitHub
- URL: https://github.com/ktmud/storeman
- Owner: ktmud
- Created: 2014-02-28T06:18:50.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2014-05-02T07:06:21.000Z (over 10 years ago)
- Last Synced: 2024-10-31T15:53:13.455Z (about 2 months ago)
- Language: JavaScript
- Size: 184 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Storeman
A man to help you unify API for mischellaneous storage engines.
Provide a handful set of of useful methods: `get`, `set` *(with ttl)*, `del`, `mget`.
With built-in [Redis](https://github.com/mranney/node_redis/) and
[LevelUP](https://github.com/rvagg/node-levelup) support.## Usage
```javascript
var Storeman = require('storeman')
var Redis = require('redis')
var levelup = require('levelup')// cache with Redis
var cache = new Storeman({
prefix: 'cache:',
client: Redis.createClient(),
encode: function(data){
return JSON.stringify(data)
},
decode: function(data) {
return JSON.parse(data)
}
})// persistent storage with leveldb
var store = new Storeman({
prefix: 'store:',
client: levelup('./var/leveldb')
})
```## API
The main purpose of this module is to provide a higher level of consistent API over
different storage clients. That means:- consistent method name
- consistent function signature
- consistent return resultsAll methods include:
### store.get(key, callback)
Will `callback(null, undefined)` when no data is found,
not return a `null` (as redis does) or emit an error (as leveldb does).
This behavior is for in case you want really set data as `null`.### store.set(key, value, [ttl], callback)
The client is responsible for handling `ttl`, Storeman will not do this for you.
### store.del(key, callback)
Supports batch delete by passing an Array as `key`.
## License
the MIT license.