Implementation of the ARC algorithm for Node.js
Description of the algorithm can be found in: http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.13.5210&rep=rep1&type=pdf or https://www.ipvs.uni-stuttgart.de/export/sites/default/ipvs/abteilungen/as/lehre/lehrveranstaltungen/vorlesungen/WS1415/material/ARC.pdf
var cache = new ARC(3);
//creates a cache of size 3.
cache.on('eviction', function(key, val) {...});
//the cache emit an 'eviction' event when an element leaves the cache.
#API
-
cache.get(key)
returns undefined if the key is not in cache else returns its value; the cache internal state is updated if and only if the value is not null. -
cache.peek(key)
silently retrieves the value associated to key if key is in cache, else returns undefined. -
cache.update(key, val)
silently updates the value associated to a key that MUST be in the cache. -
cache.del(key)
is the same as cache.update(key, null) -
cache.set(key, val)
adds a new entry in the cache and update cache internal state. Key MUST NOT be in the cache.