request-cache
v0.1.3
Published
Simple request caching using Redis for request.
Downloads
7
Maintainers
Readme
request-cache
Simple request caching using Redis for request.
Tested with redis clients: node_redis ioredis
Installation
npm i --save request-cache
API Reference
Example
const requestCache = require('request-cache');
const rCache = requestCache(REDIS_CLIENT);
const cacheKey;
setInterval(function () {
const key = rCache('http://www.somethingawesome.com', function (err, resp, body) {
// Do something with the awesomeness
});
// First call - cacheKey is undefined; resp and body are cached and returned
// Second call - cacheKey === key; cached resp and body are returned
// Third call - cacheKey === key; cached resp and body are returned
// ...
// Three-thousand-six-hundredth call - cacheKey === key; new resp and body are cached and returned
cacheKey = key;
}, 1000);
module.exports(redisClient, [options]) ⇒ function ⏏
Kind: Exported function
| Param | Type | Default | Description | | --- | --- | --- | --- | | redisClient | object | | an instance of a redis client | | [options] | object | | Options for cache management | | [options.algorithm] | string | "md5" | Any available system hashing algorithm to generate cache key (more info) | | [options.encoding] | string | "hex" | Encoding algorithm to use for encoding hashed cache key | | [options.ttl] | number | 3600 | Time in seconds for cache time-to-live | | [options.refresh] | number | 0 | Time in seconds to refresh time-to-live (this does not initiate a new request) | | [options.queryCacheKeys] | array | | Query param keys to use for generating cache key | | [options.keyPrefix] | string | | Prefix for generated cache keys |
Examples
With Basic Requests
const requestCache = require('request-cache');
const rCache = requestCache(REDIS_CLIENT);
const cacheKey = rCache('http://www.somethingawesome.com', function (err, resp, body) {
// Do something with the awesomeness
});
With Request Object
const requestCache = require('request-cache');
const rCache = requestCache(REDIS_CLIENT);
const cacheKey = rCache({
url:'http://www.somethingawesome.com',
}, function (err, resp, body) {
// Do something with the awesomeness
});
With Cache Key Options
const requestCache = require('request-cache');
const rCache = requestCache(REDIS_CLIENT, {
queryCacheKeys: ['foo']
});
const cacheKey = rCache({
url:'http://www.somethingawesome.com',
qs: {
foo: 'bar', // value used in cache key generation
far: 'boo'
}
}, function (err, resp, body) {
// Do something with the awesomeness
});
License
Apache 2.0