redis-cache-dataloader

0.3.4 • Public • Published

redis-cache-dataloader

A wrapper for dataloader that uses redis as a cache layer in place of the default memory cache. This is able to be swapped with dataloader without changing any code.

Quick Links:

Install

npm install redis-cache-dataloader --save

config

setup RedisDataLoader config. You will need to pass in the redis port and ip address. You can also disable redis usage. this will use dataloader normally with caching enabled.

// 1. using env vars
process.env.REDIS_PORT = 6379; // default: 6379;
process.env.REDIS_IP = '127.0.0.1'; // default: '127.0.0.1';
process.env.DISABLE_REDIS = false; // default: false
process.env.REDIS_EXPIRE = 60; // default: undefined. value is seconds

// 2. using config function
const RedisDataLoader = require('redis-cache-dataloader');
RedisDataLoader.config({
  redisPort: process.env.REDIS_PORT, // default: 6379;
  redisIP: process.env.REDIS_IP, // default: '127.0.0.1';
  disableRedis: process.env.DISABLE_REDIS, // default: false
  expire: process.env.REDIS_EXPIRE // default: undefined
});

Create RedisDataLoader

Create a new RedisDataLoader instance. This has the same interface as DataLoader so you can use it exactly the same way. DataLoader link Loading Data Eaxamples

const RedisDataLoader = require('redis-cache-dataloader');

// id you want to not use redis when developing locally you can disable the redis cache, which will then turn on in memory caching
// RedisDataLoader.config({ disableRedis: true });

var loader = new RedisDataLoader('itemPrefix', keys => {
  // connect to data source. Check out Loading Data Examples link above
  return new Promise((resolve, reject) => {
    resolve(keys.map(key => {
      return { id: key };
    }));
  });
});


// prime cache
loader.prime(1)

// load
loader.load(1);

// clear
loader.clear(1);


// Disable cache on loader
var loader = new RedisDataLoader('itemPrefix', keys => {
  // connect to data source. Check out Loading Data Examples link above
  return new Promise((resolve, reject) => {
    resolve(keys.map(key => {
      return { id: key };
    }));
  });
}, { cache: false });

Readme

Keywords

none

Package Sidebar

Install

npm i redis-cache-dataloader

Weekly Downloads

4

Version

0.3.4

License

MIT

Unpacked Size

8.66 kB

Total Files

8

Last publish

Collaborators

  • b-3po