https://github.com/livepersoninc/cacherjs
JS TTL Cache Mechanism
https://github.com/livepersoninc/cacherjs
cache cacher ttl ttl-cache
Last synced: 10 months ago
JSON representation
JS TTL Cache Mechanism
- Host: GitHub
- URL: https://github.com/livepersoninc/cacherjs
- Owner: LivePersonInc
- License: mit
- Created: 2015-05-21T15:36:04.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2022-01-20T01:41:46.000Z (over 4 years ago)
- Last Synced: 2025-08-09T02:49:37.305Z (10 months ago)
- Topics: cache, cacher, ttl, ttl-cache
- Language: JavaScript
- Homepage:
- Size: 60.5 KB
- Stars: 4
- Watchers: 11
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
cacherjs
========
[](http://gruntjs.com/)
[](https://travis-ci.org/LivePersonInc/cacherjs)
[](https://codeclimate.com/github/LivePersonInc/cacherjs/coverage)
[](https://codeclimate.com/github/LivePersonInc/cacherjs)
[](http://badge.fury.io/js/cacherjs)
[](https://david-dm.org/LivePersonInc/cacherjs)
[](https://david-dm.org/LivePersonInc/cacherjs#info=devDependencies)
[](https://img.shields.io/npm/dm/cacherjs.svg)
[](https://nodei.co/npm/cacherjs/)
> JS TTL Cache Mechanism.
This is a UMD module that can be used as AMD module, native and NodeJS.
Getting Started
---------------
Run `npm install cacherjs`
Overview
-------------
A TTL cache mechanism with the following options at instance creation
#### options.max
Type: `Number`
Default value: `0`
optional max items in cache - 0 is unlimited
#### options.maxStrategy
Type: `Cacher.MAX_STRATEGY`
Default value: `Cacher.MAX_STRATEGY.NO_ADD`
optional strategy for max items (new items will not be added or closest ttl item should be removed)
#### options.ttl
Type: `Number`
Default value: `0`
optional TTL for each cache item - 0 is unlimited
#### options.interval
Type: `Number`
Default value: `1000`
optional interval for eviction loop in milliseconds
#### options.ontimeout
Type: `Function`
Default value: `Empty function`
optional global handler for timeout of items in cache - return false if you want the items to not be deleted after ttl, or object { ttl: number, callback: function } to update the TTL or callback
#### options.onkickout
Type: `Function`
Default value: `Empty function`
optional global handler for kick out (forced evict) of items in cache
API
----------
### get (key, [optional]pop)
Will get the value associated with the given `key`.
`pop` is a boolean flag indicating whether to also pop/remove the item from cache.
### set (key, value, [optional]ttl, [optional]callback)
Will set `value` and associate it with the given `key`.
`ttl` will override the time to live for the item inside the cache.
`callback` will be called on item timeout - return false if you want the item to not be deleted after ttl, or object { ttl: number, callback: function } to update the TTL or callback
### touch (key, [optional]ttl, [optional]callback)
Will reset or update the `ttl` and/or update ontimeout callback for the given `key`.
`ttl` will override the time to live for the item inside the cache.
`callback` will override the initial handler to be called on item timeout - return false if you want the item to not be deleted after ttl, or object { ttl: number, callback: function } to update the TTL or callback
### remove (key)
Will remove `key` from cache.
### removeAll
Will clean the cache completely
Example
-----------
```javascript
var Cacher = require("cacherjs").Cacher;
var cache = new Cacher({
ttl: 180000,
interval: 30000,
max: 5000,
maxStrategy: Cacher.MAX_STRATEGY.CLOSEST_TTL
});
ttlCache.set("key1", "someValue");
ttlCache.get("key1"); //"someValue"
```
License
----------
MIT