request-cache

0.1.3 • Public • Published

request-cache

Build Status Code Climate for CentralPing/request-cache Dependency Status for CentralPing/request-cache Greenkeeper badge

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

Dependencies (2)

Dev Dependencies (14)

Package Sidebar

Install

npm i request-cache

Weekly Downloads

0

Version

0.1.3

License

Apache 2.0

Last publish

Collaborators

  • jasoncust