diff options
Diffstat (limited to 'node_modules/ylru/README.md')
| -rw-r--r-- | node_modules/ylru/README.md | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/node_modules/ylru/README.md b/node_modules/ylru/README.md new file mode 100644 index 00000000..219c695f --- /dev/null +++ b/node_modules/ylru/README.md @@ -0,0 +1,91 @@ +# ylru + +[![NPM version][npm-image]][npm-url] +[![build status][travis-image]][travis-url] +[![Test coverage][codecov-image]][codecov-url] +[![David deps][david-image]][david-url] +[![Known Vulnerabilities][snyk-image]][snyk-url] +[![npm download][download-image]][download-url] + +[npm-image]: https://img.shields.io/npm/v/ylru.svg?style=flat-square +[npm-url]: https://npmjs.org/package/ylru +[travis-image]: https://img.shields.io/travis/node-modules/ylru.svg?style=flat-square +[travis-url]: https://travis-ci.org/node-modules/ylru +[codecov-image]: https://img.shields.io/codecov/c/github/node-modules/ylru.svg?style=flat-square +[codecov-url]: https://codecov.io/github/node-modules/ylru?branch=master +[david-image]: https://img.shields.io/david/node-modules/ylru.svg?style=flat-square +[david-url]: https://david-dm.org/node-modules/ylru +[snyk-image]: https://snyk.io/test/npm/ylru/badge.svg?style=flat-square +[snyk-url]: https://snyk.io/test/npm/ylru +[download-image]: https://img.shields.io/npm/dm/ylru.svg?style=flat-square +[download-url]: https://npmjs.org/package/ylru + +**hashlru inspired** + +[hashlru](https://github.com/dominictarr/hashlru) is the **Simpler, faster LRU cache algorithm.** +Please checkout [algorithm](https://github.com/dominictarr/hashlru#algorithm) and [complexity](https://github.com/dominictarr/hashlru#complexity) on hashlru. + +ylru extends some features base on hashlru: + +- cache value can be **expired**. +- cache value can be **empty value**, e.g.: `null`, `undefined`, `''`, `0` + +## Usage + +```js +const LRU = require('ylru'); + +const lru = new LRU(100); +lru.set(key, value); +lru.get(key); + +// value2 will be expired after 5000ms +lru.set(key2, value2, { maxAge: 5000 }); +// get key and update expired +lru.get(key2, { maxAge: 5000 }); +``` + +### API + +## LRU(max) => lru + +initialize a lru object. + +### lru.get(key[, options]) => value | null + +- `{Number} options.maxAge`: update expire time when get, value will become `undefined` after `maxAge` pass. + +Returns the value in the cache. + +### lru.set(key, value[, options]) + +- `{Number} options.maxAge`: value will become `undefined` after `maxAge` pass. +If `maxAge` not set, value will be never expired. + +Set the value for key. + +### lru.keys() + +Get all unexpired cache keys from lru, due to the strategy of ylru, the `keys`' length may greater than `max`. + +```js +const lru = new LRU(3); +lru.set('key 1', 'value 1'); +lru.set('key 2', 'value 2'); +lru.set('key 3', 'value 3'); +lru.set('key 4', 'value 4'); + +lru.keys(); // [ 'key 4', 'key 1', 'key 2', 'key 3'] +// cache: { +// 'key 4': 'value 4', +// } +// _cache: { +// 'key 1': 'value 1', +// 'key 2': 'value 2', +// 'key 3': 'value 3', +// } +``` + +## License + +[MIT](LICENSE) |
