redis-cache-wrap

1.3.0 • Public • Published

redis-cache-wrap

Node.js module for wrapping promise results in Redis.

npm package

Why?

This module was originally a subset of the Morning Consult Intelligence, but it seemed fit to make it an independent module for other APIs used by Morning Consult. And wrapping promises is easy.

Usage

It wraps promises, stores their results in redis, and only calls the initial function again if the key does not exist.

const cache = require('redis-cache-wrap')({
  prefix: 'foobar:',
  ex: (1 * 60 * 60), // 1 hour
  connection: {
    port: process.env.REDIS_PORT || 6379,
    host: process.env.REDIS_HOST || 'localhost'
  }
});
 
 
function worker () {
  return doAsyncWork();
}
 
function getStuff () {
  return cache.wrapPromise('bimbaz', 300, worker);
}
 
getStuff().then(res => {
  // This will be result returned from worker since first call
  // Result will be saved to redis and returned from the cache
  // on subsequent calls instead of calling worker.
  return res;
}).then(() => getStuff()).then(cachedRes => {
  // This will come from cache
  console.log(cachedRes);
});

Readme

Keywords

Package Sidebar

Install

npm i redis-cache-wrap

Weekly Downloads

8

Version

1.3.0

License

ISC

Unpacked Size

78.1 kB

Total Files

10

Last publish

Collaborators

  • adulin