@kite-tech/redis-cache
v1.6.1
Published
A simple Redis-backed Cache for Node
Downloads
72
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 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 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
.