@kite-tech/redis-cache

    1.6.1 • Public • Published

    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.

    Install

    npm i @kite-tech/redis-cache

    DownloadsWeekly Downloads

    1

    Version

    1.6.1

    License

    UNLICENSED

    Unpacked Size

    15.7 kB

    Total Files

    7

    Last publish

    Collaborators

    • a7xsv
    • mattkay
    • sylwester.smolen
    • tomgallard
    • dbotha
    • kite-machine-user