https://github.com/fengkx/cacheman-level
Cacheman engine using leveldb
https://github.com/fengkx/cacheman-level
cache cacheman npm-package
Last synced: 12 months ago
JSON representation
Cacheman engine using leveldb
- Host: GitHub
- URL: https://github.com/fengkx/cacheman-level
- Owner: fengkx
- License: mit
- Created: 2019-02-13T11:11:41.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-02-06T21:00:44.000Z (about 3 years ago)
- Last Synced: 2025-03-27T21:39:48.114Z (12 months ago)
- Topics: cache, cacheman, npm-package
- Language: JavaScript
- Size: 300 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cacheman-level
Standalone caching library for Node.JS and also cache engine for [cacheman](https://github.com/cayasso/cacheman) using LevelDB specifically [level](https://www.npmjs.com/package/level).
[](https://nodei.co/npm/cacheman-level/)
[](https://travis-ci.org/fengkx/cacheman-level)
[](https://coveralls.io/github/fengkx/cacheman-level?branch=master)
## Instalation
```bash
$ npm install cacheman-level
```
## Usage
**Promise is support**
```js
const CachemanLevel = require('cacheman-level');
const cache = new CachemanLevel('./DS_Store'); //location
;(async () => {
// set the value
await cache.set('my key', { foo: 'bar' });
const value = await cache.get('my key');
console.log(value); //-> {foo:"bar"}
})()
```
```javascript
const CachemanLevel = require('cacheman-level');
const cache = new CachemanLevel('./DS_Store'); //location
// set the value
cache.set('my key', { foo: 'bar' }, function(error) {
if (error) throw error;
// get the value
cache.get('my key', function(error, value) {
if (error) throw error;
console.log(value); //-> {foo:"bar"}
// delete entry
cache.del('my key', function(error) {
if (error) throw error;
console.log('value deleted');
});
});
});
```
## API
### CachemanLevel(location, [options, error-handler])
Create `cacheman-level` instance. `options` are [level](https://www.npmjs.com/package/level) options including `checkFrequency`.
```javascript
const options = {
prefix: 'cache',
checkFrequency: 15 * 1000
};
const cache = new CachemanLevel(location, options);
```
more options get be found [here](https://www.npmjs.com/package/leveldown#ctor)
### cache.set(key, value, [ttl, [fn]])
Stores or updates a value.
```javascript
cache.set('foo', { a: 'bar' }, function(err, value) {
if (err) throw err;
console.log(value); //-> {a:'bar'}
});
```
Or add a TTL(Time To Live) in seconds like this:
```javascript
// key will expire in 60 seconds
cache.set('foo', { a: 'bar' }, 60, function(err, value) {
if (err) throw err;
console.log(value); //-> {a:'bar'}
});
```
### cache.get(key, fn)
Retrieves a value for a given key, if there is no value for the given key a null value will be returned.
```javascript
cache.get(function(err, value) {
if (err) throw err;
console.log(value);
});
```
### cache.del(key, [fn])
Deletes a key out of the cache.
```javascript
cache.del('foo', function(err) {
if (err) throw err;
// foo was deleted
});
```
### cache.clear([fn])
Clear the cache entirely, throwing away all values.
```javascript
cache.clear(function(err) {
if (err) throw err;
// cache is now clear
});
```
## Run tests
```bash
$ npm test
```