Library for cache multi drivers.
npm install polycache
PolyCache = require "polycache"
# PolyCache uses memory driver by default
# and if configuration exists, uses each driver
cache = new PolyCache
# use memory driver
cache.set("largeCsv:2014-06-01:2014-06-14", bigValue) # to memory
.then(->
cache.get("largeCsv:2014-06-01:2014-06-14") # from memory
)
.then(->
cahce.close()
)
Use memory for the keys frequently used and the values that size are small, use redis or memcached for the keys used for multi hosts and use file for large value size.
PolyCache = require "polycache"
cache = new PolyCache
file:
dir: "/tmp"
redis:
host: "localhost"
port: 6379
cache.addRule PolyCache.File, {key: /largeCsv/}
cache.addRule PolyCache.File, {val: {gt: 1024 * 1024}}
cache.addRule PolyCache.Redis, {key: "sharedSetting"}
# and if any rules do not match, use memory driver
cache.set("largeCsv:2014-06-01:2014-06-14", bigValue) # to file
.then(->
cache.get("largeCsv:2014-06-01:2014-06-14") # from file
)
.then(->
cahce.close()
)
if you do not use cache in development, so you can give app via env NO_CACHE=true.
$ NO_CACHE=true node app.js // it includes poly cache
or give configure:
new PolyCache({noCache: true})
Muddy Dixon [email protected]
Apache License Version 2.0