0.1.3 • Published 7 years ago
request-cache v0.1.3
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
0.1.3
7 years ago
0.0.0-pre1
10 years ago