Package Exports
- memory-cache
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (memory-cache) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
memory-cache 
A simple in-memory cache for node.js
Installation
npm install memory-cache --save
Usage
var cache = require('memory-cache');
// now just use the cache
cache.put('foo', 'bar');
console.log(cache.get('foo'));
// that wasn't too interesting, here's the good part
cache.put('houdini', 'disappear', 100, function(key, value) {
console.log(key + ' did ' + value);
}); // Time in ms
console.log('Houdini will now ' + cache.get('houdini'));
setTimeout(function() {
console.log('Houdini is ' + cache.get('houdini'));
}, 200);
// create new cache instance
var newCache = new cache.Cache();
newCache.put('foo', 'newbaz');
setTimeout(function() {
console.log('foo in old cache is ' + cache.get('foo'));
console.log('foo in new cache is ' + newCache.get('foo'));
}, 200);
which should print
bar
Houdini will now disappear
houdini did disappear
Houdini is null
foo in old cache is baz
foo in new cache is newbaz
API
put = function(key, value, time, timeoutCallback)
- Simply stores a value
- If time isn't passed in, it is stored forever
- Will actually remove the value in the specified time in ms (via
setTimeout
) - timeoutCallback is optional function fired after entry has expired with key and value passed (
function(key, value) {}
) - Returns the cached value
get = function(key)
- Retrieves a value for a given key
- If value isn't cached, returns
null
del = function(key)
- Deletes a key, returns a boolean specifying whether or not the key was deleted
clear = function()
- Deletes all keys
size = function()
- Returns the current number of entries in the cache
memsize = function()
- Returns the number of entries taking up space in the cache
- Will usually
== size()
unless asetTimeout
removal went wrong
debug = function(bool)
- Turns on or off debugging
hits = function()
- Returns the number of cache hits (only monitored in debug mode)
misses = function()
- Returns the number of cache misses (only monitored in debug mode)
keys = function()
- Returns all the cache keys
exportJson = function()
- Returns a JSON string representing all the cache data
- Any timeoutCallbacks will be ignored
importJson = function(json: string, options: { skipDuplicates: boolean })
- Merges all the data from a previous call to
export
into the cache - Any existing entries before an
import
will remain in the cache - Any duplicate keys will be overwritten, unless
skipDuplicates
istrue
- Any entries that would have expired since being exported will expire upon being imported (but their callbacks will not be invoked)
- Available
options
:skipDuplicates
: Iftrue
, any duplicate keys will be ignored when importing them. Defaults tofalse
.
- Returns the new size of the cache
Cache = function()
- Cache constructor
- note that
require('cache')
would return the default instance of Cache - while
require('cache').Cache
is the actual class
Note on Patches/Pull Requests
- Fork the project.
- Make your feature addition or bug fix.
- Send me a pull request.