Licence
Apache 2.0
Version
0.1.3
Deps
2
Vulns
1
Weekly
0
DeprecatedThis package is deprecated
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