@kite-tech/redis-cache

A simple Redis-backed Cache for Node

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@kite-tech/redis-cache
1.6.16 years ago6 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

- [Constructor options](#constructor-options)
- [Access](#access)
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: - https://www.npmjs.com/package/@commitlint/config-conventional

Publish on merge to master

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