A cache object that deletes the least-recently-used items.
If you put more stuff in it, then items will fall out.
If you try to put an oversized thing in it, then it'll fall out right
away.
-
set(key, value, maxAge)
-
get(key) => value
Both of these will update the "recently used"-ness of the key.
They do what you think. maxAge
is optional and overrides the
cache maxAge
option if provided.
If the key is not found, get()
will return undefined
.
The key and val can be any value.
-
peek(key)
Returns the key value (or undefined
if not found) without
updating the "recently used"-ness of the key.
(If you find yourself using this a lot, you might be using the
wrong sort of data structure, but there are some use cases where
it's handy.)
-
del(key)
Deletes a key out of the cache.
-
reset()
Clear the cache entirely, throwing away all values.
-
has(key)
Check if a key is in the cache, without updating the recent-ness
or deleting it for being stale.
-
forEach(function(value,key,cache), [thisp])
Just like Array.prototype.forEach
. Iterates over all the keys
in the cache, in order of recent-ness. (Ie, more recently used
items are iterated over first.)
-
rforEach(function(value,key,cache), [thisp])
The same as cache.forEach(...)
but items are iterated over in
reverse order. (ie, less recently used items are iterated over
first.)
-
keys()
Return an array of the keys in the cache.
-
values()
Return an array of the values in the cache.
-
length()
Return total length of objects in cache taking into account
length
options function.
-
itemCount
Return total quantity of objects currently in cache. Note, that
stale
(see options) items are returned as part of this item
count.
-
dump()
Return an array of the cache entries ready for serialization and usage
with 'destinationCache.load(arr)`.
-
load(cacheEntriesArray)
Loads another cache entries array, obtained with sourceCache.dump()
,
into the cache. The destination cache is reset before loading new entries
-
prune()
Manually iterates over the entire cache proactively pruning old entries