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 ownredisClient
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 valueasync 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
.