{"_id":"multi-level-cache","_rev":"27-e19e28d33395c41b09b92eeab3447a96","name":"multi-level-cache","description":"Manage local and remote caches with a single API","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.1":{"name":"multi-level-cache","version":"0.0.1","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"jshint .","jshint":"jshint .","check-coverage":"istanbul check-coverage --statements 84 --branches 80 --functions 65 --lines 84 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","jshint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"^0.9.0","debug":"^2.1.3","lodash":"^3.6.0","node-cache":"^1.1.0","redis":"^0.12.1"},"devDependencies":{"istanbul":"^0.3.13","jshint":"^2.6.3","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"855e2465e9e1aef79a7c477b22bb343ed5c3f86d","_id":"multi-level-cache@0.0.1","_shasum":"d741107daa29fdfdcf34a85c9bbe9f8137959342","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"d741107daa29fdfdcf34a85c9bbe9f8137959342","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.1.tgz","integrity":"sha512-JKPC8YNHwegVqQoBNf0WXuNrcEa/BPrjW/RUKpMbq4kXZCCdxYntJjIpe+gsVP50ltX3t3d6OQ4kEfPDFxzLYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICktvmMg8ghsGzzx/gQxXpjGoZylTEnJD58hGzfIC5x4AiEA2x6c2qChdEvDZM1XGkcW1ziA9YFyYcsHgv5oT/1RhOw="}]}},"0.0.2":{"name":"multi-level-cache","version":"0.0.2","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"jshint .","jshint":"jshint .","check-coverage":"istanbul check-coverage --statements 96 --branches 92 --functions 95 --lines 96 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","jshint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"^0.9.0","debug":"^2.1.3","lodash":"^3.6.0","node-cache":"^1.1.0","redis":"^0.12.1"},"devDependencies":{"istanbul":"^0.3.13","jshint":"^2.6.3","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"77c1d6b8209fa16dc81bffdcc266fdf5f53e8aa7","_id":"multi-level-cache@0.0.2","_shasum":"930612f63a8fdec46a11f9e013b4859d99510c6a","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"930612f63a8fdec46a11f9e013b4859d99510c6a","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.2.tgz","integrity":"sha512-E395yDaTjzXOtrj9HtzpfFffhVp/RlFm2msK0kTfLW/h1e3YDPxrJKy2g5ftn3hFvH+8OcbXjCwsKZ8ATvUs2g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA3AHX0vNd5I7kiSkIcMI5tQ0t5Id9iGt7exztOekOD0AiEAprWCtRaDo0Ez4hpx0YlxrtP8wuZ31I7uFWcbOgXIjuI="}]}},"0.0.3":{"name":"multi-level-cache","version":"0.0.3","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"jshint .","jshint":"jshint .","check-coverage":"istanbul check-coverage --statements 96 --branches 92 --functions 95 --lines 96 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","jshint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"^0.9.0","debug":"^2.1.3","lodash":"^3.6.0","node-cache":"^1.1.0","redis":"^0.12.1"},"devDependencies":{"istanbul":"^0.3.13","jshint":"^2.6.3","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"937328b6551ea714147bf6acb8d0cd819ae6de17","_id":"multi-level-cache@0.0.3","_shasum":"9a7157b3224e7b4352920f028b90d4fdb3e5d3bd","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"9a7157b3224e7b4352920f028b90d4fdb3e5d3bd","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.3.tgz","integrity":"sha512-ZkBwuZMmrQVRir2Fg4sdqveKYiXkOeZeFBIpozSReMPDN2EBg1nWL7GajAeYo9usOIttCyQfQM532473yYQrCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmhH0kmjJhJ2qTb1vOoph3a9VnVspv8SwkLYaO6BHk5gIhALJkUO2t++9hI4YqBoX8Sw6YKx6XFDVXNf07Nq8nY4eq"}]}},"0.0.4":{"name":"multi-level-cache","version":"0.0.4","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"jshint .","jshint":"jshint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","jshint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"1.1.0","redis":"0.12.1"},"devDependencies":{"istanbul":"^0.3.13","jshint":"^2.6.3","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"eda75a0d6354512d92f1047a8cf0401acdbac9b2","_id":"multi-level-cache@0.0.4","_shasum":"c85eacd2bc2ba525201e457d9150773313f07143","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"c85eacd2bc2ba525201e457d9150773313f07143","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.4.tgz","integrity":"sha512-cUDuB+wyjqU2IYN1+nTGLbyYxiA+y8FlmmVi+QVtXgR/lUC/LD66ipwkOV6aPwbRCe9SEKc9B+EdfupZjOxEtA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPkq6+TwZI2M6NVfNl4n7jZy40NjH/JnIqkpNagwZMGgIhALqyyFZnUxAt2lXT5qlZxuFyBv29Te9Kj8RcNEg5IFy6"}]}},"0.0.5":{"name":"multi-level-cache","version":"0.0.5","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.19.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"7bbd30ccb901d7a1adae511643ddac749b381521","_id":"multi-level-cache@0.0.5","_shasum":"485a861df510b5c6e1492a04d1130b04b0771305","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"485a861df510b5c6e1492a04d1130b04b0771305","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.5.tgz","integrity":"sha512-hw3u0MZblwP9Nerj0TkpTEISUDF3nm8FkJ/XzZnR807Gy8kfnvUFf6XJOxpU56Z5Nq8Embj+6knl0PPmxmajzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcBTXIIMZ7+V0hzHlPrjynfwKnhmNPTCiL5QZbE/hUHAIgQHfrWV7XVc9ukxpAdR/27mSmpak4lAIgzirhdQ5ehhU="}]}},"0.0.6":{"name":"multi-level-cache","version":"0.0.6","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.19.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"051d94486866967155805c5a17a7bcf49a0d4769","_id":"multi-level-cache@0.0.6","_shasum":"01beca9b07071df8c092109bd06b214040bacdeb","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"01beca9b07071df8c092109bd06b214040bacdeb","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.6.tgz","integrity":"sha512-TZJ3TBQVRHS4rM3egA+mPtjN0hWmNK0+YD4T3ktMc8JwZZ5Ol/iXTDbzFH6YlGH80QI8COKznIWqrfIuqz6sMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpsT+7cU6QGLYK2cc53T3JR6E8w4yW3y9ZGhM/II68bgIhAKjFiZIv7wCtWycpR9NlTMRiRhoP3q9QFhDHqiw8583Q"}]}},"0.0.7":{"name":"multi-level-cache","version":"0.0.7","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.19.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"f9ec029ca0180f25b19d70fefad71e717a439a18","_id":"multi-level-cache@0.0.7","_shasum":"d927bc17b4563bc352eb3bc2a1c006345f4916f8","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"d927bc17b4563bc352eb3bc2a1c006345f4916f8","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.7.tgz","integrity":"sha512-L+Zk/JKwrJ9ECq/aG802ATsAdyRziW2IkiY/UsJuQhyOO32iTl3XzuENNhsde2lAscQR01rMpYzheBdyVTBjHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFYlTgvNEj1LOtJOoTWE/Ln3fdgfnyDFLcHVMLNoDmDsAiEA7R5dik8CrvZ/OQBJ9R6fzBPnZnrims+NiT4KZHQgptE="}]}},"0.0.8":{"name":"multi-level-cache","version":"0.0.8","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.19.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"ccabcc6417bc154453574b62089834c9e5c2fa14","_id":"multi-level-cache@0.0.8","_shasum":"6d49569225739eec5165199a6614fa82782bc1de","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"6d49569225739eec5165199a6614fa82782bc1de","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.8.tgz","integrity":"sha512-DYojqAWXCShy73p3Dyj0PEKzyKI1zzd35ZIbl9fTwkbrDOTvAMSuh2jq+q2jw4P0SVihXs+wuGWBKSa+V42BeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1hzz4dxFPk5M8aXSdA3QFGo4SFcou3JvX1dtq1ozz+wIgU7DfPa2mt7hU3xbwbTwtJZsRXSf2Jlm98Em3E3ZWxa4="}]}},"0.0.9":{"name":"multi-level-cache","version":"0.0.9","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.19.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"8ba32f7f81ce95d7c267552c56a622d819d24906","_id":"multi-level-cache@0.0.9","_shasum":"00231f529c5c763d36630889dc4a0dcbc8e62aef","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"}],"dist":{"shasum":"00231f529c5c763d36630889dc4a0dcbc8e62aef","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.9.tgz","integrity":"sha512-LuaCfJUI5hytQkTLl9CunCFFUl8oDF+g2z3GjKxwfBrooNFaB169ScBYyJ/XBwdkvuPqTh4A0tLND2xgjnSrfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI2MpEObWTcOQ/fzLiEXsrVkhjieJefOLntKgQTn1tqwIgY3Sq/9Aut43JRv8UieF2M13jKahYDiIFGxYbb5az4Rs="}]}},"0.0.10":{"name":"multi-level-cache","version":"0.0.10","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"git+https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.19.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"eee133ab5206dd711e1d1f69adc7c4cc8f908fc4","_id":"multi-level-cache@0.0.10","_shasum":"7d2540e64d93aa05beb09111a034fb4005b566b6","_from":".","_npmVersion":"2.8.3","_nodeVersion":"0.10.33","_npmUser":{"name":"wprl","email":"william@kun.io"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"},{"name":"wprl","email":"william@kun.io"},{"name":"xqjibz","email":"ccrider@whiterose.net"},{"name":"pgoldrbx","email":"pgold@rubixmedia.com"},{"name":"paulfryzel","email":"paul.fryzel@gmail.com"}],"dist":{"shasum":"7d2540e64d93aa05beb09111a034fb4005b566b6","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.10.tgz","integrity":"sha512-3HzZhAO80WAgNWDoW2otkd3WuJt3yR5GxqyCPOBbTR5ZaQ0NL2/FsN88jajgzc2qSJoSk1TbCiXAg57tfGgnMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtzuX7oTAqiNb+jO7ESRztp7SHJTfoEAvSWA6/dN4/7gIhAPkvX46tvV9jdQ5bWDvOFctkHRkCZdhbFiBJPuv8wR5F"}]}},"0.0.11":{"name":"multi-level-cache","version":"0.0.11","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.19.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"886f31ee4681771bd3972deb114e04fe936d4c74","_id":"multi-level-cache@0.0.11","_shasum":"cda66ad5aa6d261605d21db6a417186fae8663d1","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"},{"name":"wprl","email":"william@kun.io"},{"name":"xqjibz","email":"ccrider@whiterose.net"},{"name":"pgoldrbx","email":"pgold@rubixmedia.com"},{"name":"paulfryzel","email":"paul.fryzel@gmail.com"}],"dist":{"shasum":"cda66ad5aa6d261605d21db6a417186fae8663d1","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.11.tgz","integrity":"sha512-FNwGV7PN1YzeADEB4GNyl+lYgn4hpQqPmyZhjhF1ydzxQepliZ3GfEWHtbFy6psHOOJfLg+LMqjkrCCP89PIkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTmB4hFd11H6lebypkz48+vsoZUx1rDQ3EP7LamMejRwIhAK3inKuYFFu4hpDJjtxfv1YmJqd+L1skEfJ7pnKVK5b2"}]}},"0.0.12":{"name":"multi-level-cache","version":"0.0.12","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.7.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.19.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"3afc96c26993574a1bf6950e7ebe764b937c2f1f","_id":"multi-level-cache@0.0.12","_shasum":"052695c5183f25f7ab68258deef895a525ade748","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"},{"name":"wprl","email":"william@kun.io"},{"name":"xqjibz","email":"ccrider@whiterose.net"},{"name":"pgoldrbx","email":"pgold@rubixmedia.com"},{"name":"paulfryzel","email":"paul.fryzel@gmail.com"}],"dist":{"shasum":"052695c5183f25f7ab68258deef895a525ade748","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.12.tgz","integrity":"sha512-vd/phh3tmTY++VuePHBw2+t55HWm9XtWv8utBAhYCQW4nF2PCDpIwCqBbFXsoBskeLBZyAugt6vPOm0FmmkErA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQcmurM3lvCcZzwiYaQWC31A7JnJ5ccGXiBmC/obZoiAiAzyNDbvkGDQ3KVlBrClCm4mK0a/U9uU8RdOOVT27YuqA=="}]}},"0.0.13":{"name":"multi-level-cache","version":"0.0.13","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"contributors":[{"name":"Robert Myers","email":"ccrider@whiterose.net"},{"name":"William Riley-Land","email":"william@kun.io"}],"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.8.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.20.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"a9c54fb86d8a34f857549cb03842a789a61601fe","_id":"multi-level-cache@0.0.13","_shasum":"3ace67c05740d904674021b144f926e31f333dbf","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"},{"name":"wprl","email":"william@kun.io"},{"name":"pgoldrbx","email":"pgold@rubixmedia.com"},{"name":"paulfryzel","email":"paul.fryzel@gmail.com"}],"dist":{"shasum":"3ace67c05740d904674021b144f926e31f333dbf","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.13.tgz","integrity":"sha512-5940Ok/edUI/YO0pWJstSYdgzRUVNVTmwFrj5rWKvUc4bHHJ+7K+ya9OUIqdaKfbL3S2owjcSEqOpHDbRsfQXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiwj5zxUsMNkgIJsatT8eatrVUSBGsKnFYr4R0/4x9aQIgAOTDuGXPcjxp1goqx3FQH4W8HQltbOX8/lfH/kp84NU="}]}},"0.0.14":{"name":"multi-level-cache","version":"0.0.14","description":"Manage local and remote caches with a single API","main":"index.js","public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"pre-commit-update":"npm-update-outdated","test":"mocha --recursive","posttest":"eslint .","lint":"eslint .","check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","pre-commit-stash-save":"git stash --keep-index","post-commit-stash-pop":"git stash pop"},"pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"repository":{"type":"git","url":"git+https://github.com/guyellis/multi-level-cache.git"},"keywords":["cache","node","redis","memcached"],"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"contributors":[{"name":"Robert Myers","email":"ccrider@whiterose.net"},{"name":"William Riley-Land","email":"william@kun.io"}],"license":"MIT","bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"homepage":"https://github.com/guyellis/multi-level-cache","dependencies":{"async":"0.9.0","debug":"2.1.3","lodash":"3.8.0","node-cache":"2.1.1","redis":"0.12.1"},"devDependencies":{"eslint":"^0.20.0","istanbul":"^0.3.13","mocha":"^2.2.4","npm-update-outdated":"^0.1.4","pre-commit":"^1.0.6","sinon":"^1.14.1"},"engines":{"node":">= 0.10.0"},"gitHead":"41fdcbc27a0005e74a04ee74159e0f2af7ee0687","_id":"multi-level-cache@0.0.14","_shasum":"9d1ca49971e8321320d4a7e403b63acddb0213f7","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.10.38","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"maintainers":[{"name":"guyellis","email":"wildfiction@gmail.com"},{"name":"wprl","email":"william@kun.io"},{"name":"pgoldrbx","email":"pgold@rubixmedia.com"},{"name":"paulfryzel","email":"paul.fryzel@gmail.com"}],"dist":{"shasum":"9d1ca49971e8321320d4a7e403b63acddb0213f7","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-0.0.14.tgz","integrity":"sha512-E2022t35rgUsRZlS8pmdTNAB/c7PeO5xigj8iArKfqum8ZTmuXy5V1jXa6du5OP6rNHRL1d4jtswXNyZBdD5UA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH2RHVm2isZZAHukjzzAs1VxjoVPX3DX1VKiplaPX+QdAiEAp6ChbQ1wOgz64x7appVZuuX2/itu2Hiqbzpg+DHQbzg="}]}},"1.0.0":{"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"contributors":[{"name":"Robert Myers","email":"ccrider@whiterose.net"},{"name":"William Riley-Land","email":"william@kun.io"}],"dependencies":{"async":"2.5.0","debug":"2.6.8","lodash":"4.17.4","node-cache":"4.1.1","redis":"2.7.1"},"description":"Manage local and remote caches with a single API","devDependencies":{"eslint":"4.3.0","istanbul":"0.4.5","mocha":"3.4.2","pre-commit":"^1.0.6","sinon":"2.3.7"},"engines":{"node":">= 6.0.0"},"homepage":"https://github.com/guyellis/multi-level-cache","keywords":["cache","node","redis","memcached"],"license":"MIT","main":"index.js","name":"multi-level-cache","pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"repository":{"type":"git","url":"git+https://github.com/guyellis/multi-level-cache.git"},"scripts":{"check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","lint":"eslint .","post-commit-stash-pop":"git stash pop","posttest":"eslint .","pre-commit-stash-save":"git stash --keep-index","pre-commit-update":"npm update","test":"mocha --recursive"},"version":"1.0.0","gitHead":"0960f9090357fc1dab2ec513e5eb78658204d9e2","_id":"multi-level-cache@1.0.0","_npmVersion":"5.0.3","_nodeVersion":"8.2.1","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"dist":{"integrity":"sha512-xQL/oFteYozYt+3AgD8/wgZNqamJYQ7CfdeAPXANBkCNNOJ57XA3mW8BUzthD7/OMQ+y74fpvolpQCEHLkfz9Q==","shasum":"c3c88ba539bfba7efa03e6d8559d85d73f80db9c","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICatLu2qiQSOvYmGz0QZ22w/PGURi7e1N95MwPh+FRUFAiEAt8lqDcnLPDS76WHhm+3mDU1nX/l6Z2NgXjMDMWImECA="}]},"maintainers":[{"email":"paul.fryzel@gmail.com","name":"paulfryzel"},{"email":"pgold@rubixmedia.com","name":"pgoldrbx"},{"email":"william@kun.io","name":"wprl"},{"email":"wildfiction@gmail.com","name":"guyellis"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multi-level-cache-1.0.0.tgz_1501040168291_0.3599713167641312"}},"1.1.0":{"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"contributors":[{"name":"Robert Myers","email":"ccrider@whiterose.net"},{"name":"William Riley-Land","email":"william@kun.io"}],"dependencies":{"async":"2.5.0","debug":"3.1.0","lodash":"4.17.4","node-cache":"4.1.1","redis":"2.8.0"},"description":"Manage local and remote caches with a single API","devDependencies":{"eslint":"4.10.0","istanbul":"0.4.5","mocha":"4.0.1","pre-commit":"^1.0.6","sinon":"4.1.1"},"engines":{"node":">= 6.0.0"},"homepage":"https://github.com/guyellis/multi-level-cache","keywords":["cache","node","redis","memcached"],"license":"MIT","main":"index.js","name":"multi-level-cache","pre-commit":["pre-commit-update","lint","pre-commit-stash-save","coverage","post-commit-stash-pop","check-coverage"],"public":true,"publishConfig":{"registry":"http://registry.npmjs.org/"},"repository":{"type":"git","url":"git+https://github.com/guyellis/multi-level-cache.git"},"scripts":{"check-coverage":"istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 ./coverage/coverage.json","coverage":"istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive","lint":"eslint .","post-commit-stash-pop":"git stash pop","posttest":"eslint .","pre-commit-stash-save":"git stash --keep-index","pre-commit-update":"npm update","test":"mocha --recursive"},"version":"1.1.0","gitHead":"ab0c28ff1e153fc765174e65f1c17553ef109255","_id":"multi-level-cache@1.1.0","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"guyellis","email":"wildfiction@gmail.com"},"dist":{"integrity":"sha512-KF7kOQe1AHJIWdV7TiXXhaDQpbEFkivNplfqNHuIHTNTO4vTlTrB7kWm3cQwOSUHa/vTn1QjLSreoFmJjqC7cA==","shasum":"cc9061cb34ed856c805e01bf935ec6e312985dcf","tarball":"https://registry.npmjs.org/multi-level-cache/-/multi-level-cache-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID4pS/sASC+L8BY++tYvuO8TKpkJBIsymjSX8+xVI8qdAiAs9G36Zgja4AozURho44P0iiu5aJRcZYCO31D7LStLQw=="}]},"maintainers":[{"email":"paul.fryzel@gmail.com","name":"paulfryzel"},{"email":"pgold@rubixmedia.com","name":"pgoldrbx"},{"email":"william@kun.io","name":"wprl"},{"email":"wildfiction@gmail.com","name":"guyellis"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multi-level-cache-1.1.0.tgz_1509895531419_0.10743552632629871"}}},"readme":"# Multi Level Cache\n\n\nMulti Level Cache allows you to manage a local and remote cache with a single API/module.\nContact [@wildfiction](https://twitter.com/wildfiction) with questions.\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/guyellis/multi-level-cache.svg)](https://greenkeeper.io/)\n[![Build Status](https://travis-ci.org/guyellis/multi-level-cache.svg?branch=master)](https://travis-ci.org/guyellis/multi-level-cache)\n[![Code Climate](https://codeclimate.com/github/guyellis/multi-level-cache/badges/gpa.svg)](https://codeclimate.com/github/guyellis/multi-level-cache)\n[![Dependency Status](https://david-dm.org/guyellis/multi-level-cache.png)](https://david-dm.org/guyellis/multi-level-cache)\n\n# Install:\n\n```\nnpm install multi-level-cache [--save]\n```\n\n# Usage:\n\n```\nvar MultiCache = require('multi-level-cache');\nvar multiCache = new MultiCache('node-cache', 'redis');\n\nmultiCache.set('myKey', 'myValue', function(err, result) {\n  // Key/Value has been set in both the local in-memory node-cache\n  // and in the remote redis cache\n});\n\nmultiCache.get('myKey', function(err, result) {\n  // value is now set to 'myValue'\n  // By default it will look in local cache first and then remote\n  // cache if not found locally.\n});\n```\n\n# API\n\n## `new MultiCache(localCache, remoteCache [,options])`\n\n* `localCache`\n  * String, such as 'node-cache', representing a cache known by the system\n  to use as the local cache OR:\n  * Object/function that exposes the methods `set`, `get`, `del`\n* `remoteCache`\n  * String, such as 'redis', representing a cache known by the system\n  to use as the remote cache OR:\n  * Object/function that exposes the methods `set`, `get`, `del`\n* `options`\n  * `useLocalCache` - if set to a truthy value then by default the local\n  cache will be active for all operations. If missing then will default\n  to true.\n  * `useRemoteCache` - if set to a truthy value then by default the remote\n  cache will be active for all operations. If missing then will default\n  to true.\n  * `localOptions` - if a string is passed in for the localCache then set\n  `localOptions` to an object to be used when creating the local cache.\n  * `remoteOptions` - if a string is passed in for the remoteCache then set\n  `remoteOptions` to an object to be used when creating the remote cache.\n  * `ttl` - set a default ttl on call cache objects, may be overridden by\n  setting the ttl during a `set` call.\n\n## `set(key, value, [ttl, options,] callback)`\n\n* `key`\n  * The key to use in the cache\n* `value`\n  * The value to be stored against that key\n* `ttl`\n  * The time-to-live for that cache object in seconds.\n* `options`\n  * `useLocalCache` - allows the overriding of the default value for local\n  cache use on an operation-by-operation basis.\n  * `useRemoteCache` - allows the overriding of the default value for remote\n  cache use on an operation-by-operation basis.\n* `callback(error, value)`\n  * A callback function that will be called with an `error` as the first\n  parameter (if there is one) and the value as the second parameter.\n\n## `get(keys, [options,] callback)`\n\n* `keys`\n  * The keys to find in the cache\n* `options`\n  * `useLocalCache` - allows the overriding of the default value for local\n  cache use on an operation-by-operation basis.\n  * `useRemoteCache` - allows the overriding of the default value for remote\n  cache use on an operation-by-operation basis.\n  * `setLocal` - If the local cache is empty and the keys are found in the\n  remote cache and `setLocal` is truthy then the local cache will be updated\n  with the results from the remote cache.\n* `callback(error, value)`\n  * A callback function that will be called with an `error` as the first\n  parameter (if there is one) and the value as the second parameter.\n  * `error` will be set to a MultiError object if no key is found. The\n    keyNotFound property will be true.\n  * `value` will be undefined if no key is found\n\n## `del(keys, [options,] callback)`\n\n* `keys`\n  * The keys to remove from the cache(s).\n* `options`\n  * `useLocalCache` - allows the overriding of the default value for local\n  cache use on an operation-by-operation basis.\n  * `useRemoteCache` - allows the overriding of the default value for remote\n  cache use on an operation-by-operation basis.\n* `callback(error)`\n  * A callback function that will be called with an `error` as the single parameter (if there is one).\n\n## `flushAll([options,] callback)`\n\n* `options`\n  * `useLocalCache` - allows the overriding of the default value for local cache use on an operation-by-operation basis.\n  * `useRemoteCache` - allows the overriding of the default value for remote cache use on an operation-by-operation basis.\n* `callback(error)`\n  * A callback function that will be called with an `error` as the single parameter (if there is one).\n\n## `stats([options,] callback)`\n\n* `options`\n  * `useLocalCache` - allows the overriding of the default value for local cache use on an operation-by-operation basis.\n  * `useRemoteCache` - allows the overriding of the default value for remote cache use on an operation-by-operation basis.\n* `callback(error, stats)`\n  * A callback function that will be called with an `error` as the first parameter (if there is one).\n  * The second parameter is an object with stats about the cache.\n  It has 3 properties:\n    * `name` - the cache's name\n    * `keys` - the number of keys in the cache\n    * `custom` - an object holding stats generated by the underlying cache.\n\n# Details\n\nThe Multi Level Cache module does not actually do any caching itself.\nIt relies on other modules to do the caching and it acts as a way to efficiently manage\na local and remote cache as a single unit.\n\nAdapters are currently provided for the following cache modules:\n\n* [node-cache](https://github.com/tcs-de/nodecache)\n* [redis](https://github.com/mranney/node_redis)\n\nIf there is a cache module that you want to use with the Multi Level Cache that's\nnot listed above then [add an issue](https://github.com/guyellis/multi-level-cache/issues) or\na Pull Request to get it in there.\n\nHere are some ways that you might use this module. The use cases assume that you're running\na load-balanced cluster of servers. Many of these use cases will also apply to single server\ninstances that want to maintain a local cache backed by a remote cache for fast start times\nand redundancy or memory efficiency (LRU) in the local cache.\n\n## Redis Adapter\n\nTo change the host and port from the default for the Redis adapter simply\npass a remoteOptions property to the constructor in the options param.\n```\nvar redisOptions = {\n  host: 'http://my-redis-server', // IP/domain of your redis server\n  port: 9999                      // Port that redis is running on\n}\nvar multiCache = new MultiCache(localCache, remoteCache, {\n    remoteOptions: redisOptions\n  });\n\n```\n\n# Use Cases\n\n## Use Case: Immutable data from a slow source\n\nNeed: Your application needs to retrieve immutable data from a source that is slow. Once you've\nretrieved the data you keep it in local memory because it's immutable and is not going to change.\n\nUse:\n\n* You setup the cache and issue a `get()` on the key.\n* Both the local and remote caches are checked and do not find the data.\n* You retrieve the data from the slow source and do a `set()` which places it in both caches.\n* The next time this server needs that data it will do a `get()` and check the local cache first.\n  It finds the data in the local cache and returns that will no network request.\n* Another server in the cluster needs this data. It does a `get()` on the cache for the data. It\n  first checks the local cache but that is empty. The remote cache, however, has the data and returns\n  it bypassing the need to go to the slow source. Because the `setLocal` flag has been set it also\n  updates the local cache with the data so that when this server makes that request again the local\n  cache is able to service the request.\n\n## Use Case: Time insensitive data\n\nNeed: You have data that is built by making several (possibly expensive) DB calls and processing\nthat data with your business rules. Once the data has been assembled it's good for a given period\nof time because the underlying data rarely changes. It's also okay if the server are out-of-sync\nfor a short period of time.\n\nUse:\n\n* Check to see if you already have the data available by calling the `get()` method on the\nmulti-level-cache with the `setLocal` option set to true. `setLocal` will update the local\ncache if the data is only found in the remote cache.\n* If there's nothing in the cache then assemble it from DB calls and processing and use `set()` to\nput it in the caches. When using `set()` specify a TTL of (say) 1 minute.\n* Depending on the size of your cluster of servers and the number of DB calls you make this will\nreduce your application's impact on DB resources by only making requests to the DB around a maximum\nof once per minute (for our example) while still keeping all servers relatively up-to-date by using\na combination of a local and remote cache.\n\n## Use Case: Rate limiting\n\nNeed: Your application makes calls out to social media applications to use data from their APIs.\nThe social media applications have rate limiting associated with the token that you're using or\nthe IPs from which you are making the calls.\n\nUse:\n\n* Check your local last-updated-time to see if it's time to fetch more data from the source.\n* If it is then check the last-updated-time in the remote cache to see if it is current or not.\n* If it is current then update your local cache with the remote cache.\n* If it is not then call the API to update both local and remote cache.\n* Other servers in the cluster will get the benefit of this server updating the remote cache\nwhen their local last-updated-time expires.\n* Your calls to the API have reduced and aleviated your rate limit problem.\n\n## Use Case: Comparing caches\n\nNeed: You want to compare how two different cache implementations will work with your code. Both\n of the caches are supported by Multi-Level-Cache.\n\nUse:\n\n* Add Multi-Level-Cache to your application.\n* Enable only one of the caches (local or remote) and specify which adapter (cache) you want to\ntest first.\n* Run your performance/load tests and then swap the local or remote cache for the other\nadapter(s) that you want to test and repeat the tests.\n* If an adapter isn't available for a cache that you want to compare then add it to the cache-lib.\nIf you think that others might benefit from being able to use this adapter then submit a Pull Request.\n","maintainers":[{"email":"paul.fryzel@gmail.com","name":"paulfryzel"},{"email":"pgold@rubixmedia.com","name":"pgoldrbx"},{"email":"william@Kun.io","name":"wprl"},{"email":"wildfiction@gmail.com","name":"guyellis"}],"time":{"modified":"2022-06-20T13:22:12.988Z","created":"2015-04-15T16:28:07.911Z","0.0.1":"2015-04-15T16:28:07.911Z","0.0.2":"2015-04-15T17:59:38.399Z","0.0.3":"2015-04-16T12:03:54.489Z","0.0.4":"2015-04-16T21:26:47.102Z","0.0.5":"2015-04-18T20:42:34.291Z","0.0.6":"2015-04-20T22:46:33.321Z","0.0.7":"2015-04-21T13:20:06.662Z","0.0.8":"2015-04-21T16:56:13.740Z","0.0.9":"2015-04-21T20:22:33.020Z","0.0.10":"2015-04-22T21:00:47.202Z","0.0.11":"2015-04-27T19:24:30.483Z","0.0.12":"2015-04-30T20:14:56.108Z","0.0.13":"2015-05-06T14:26:44.294Z","0.0.14":"2015-06-01T15:58:56.794Z","1.0.0":"2017-07-26T03:36:08.393Z","1.1.0":"2017-11-05T15:25:31.545Z"},"homepage":"https://github.com/guyellis/multi-level-cache","keywords":["cache","node","redis","memcached"],"repository":{"type":"git","url":"git+https://github.com/guyellis/multi-level-cache.git"},"author":{"name":"Guy Ellis","email":"wildfiction@gmail.com"},"bugs":{"url":"https://github.com/guyellis/multi-level-cache/issues"},"license":"MIT","readmeFilename":"README.md","contributors":[{"name":"Robert Myers","email":"ccrider@whiterose.net"},{"name":"William Riley-Land","email":"william@kun.io"}],"users":{"gerrard00":true}}