@kite-tech/redis-cache

A simple Redis-backed Cache for Node

Stats

StarsIssuesVersionUpdatedCreatedSize
@kite-tech/redis-cache
1.6.13 years ago3 years agoMinified + gzip package size for @kite-tech/redis-cache in KB

Readme

node-redis-cache

A simple Redis-backed Cache for Node applications.

Tables of contents

Installation

npm install --save @kite-tech/redis-cache

You should have redis v2.x installed as well (or pass your own redisClient see Constructor options).

Usage

Constructor options

Instantiate a cache with name 'products':

const Cache = require('@kite-tech/cache');
const productsCache = new Cache('products');

Instantiate a cache with name 'products' and pass a redisClient:

const Cache = require('@kite-tech/cache');
const redisClient = {
    getAsync () {},
    setAsync () {},
    delAsync () {}
};
const productsCache = new Cache('products', redisClient);

Instantiate a cache with name 'products' and pass a ttl:

const Cache = require('@kite-tech/cache');
const PRODUCTS_TTL = 60 * 30; // 30 minutes, in seconds
const productsCache = new Cache('products', undefined, ttl);

Access

  • Set a key in productsCache, with default TTL (either set at instantiation time or 30 minutes):

    async function fetchProduct () {
      await productsCache.set(
          'my-cache-id',
          {
              plain: 'old',
              js: 'object'
          }
      )
    }
    
  • Set a key in productsCache, with a specific TTL:

    const CUSTOM_TTL = 60; // 1 minute, in seconds
    async function fetchProduct () {
      await productsCache.set(
          'my-cache-id',
          {
              plain: 'old',
              js: 'object'
          },
          {
              ttl: CUSTOM_TTL
          }
      )
    }
    
  • Get a key in productsCache, cachedProduct can be null or the stored value

    async function fetchProduct () {
      const cachedProduct = await productsCache.get('my-cache-id');
    }
    
  • Evict a key in productsCache:

    async function fetchUncached () {
      await productsCache.evict('my-cache-id');
    }
    

Publishing

Commit linting

We use the config-conventional setup to lint the commits. See details of this here:

Publish on merge to master

master is automatically released as a new version based on the commit messages using semantic-release.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.