IORedis store for node cache manager
Redis cache store for node-cache-manager.
This is a rewrite of dabroek/node-cache-manager-ioredis.
It uses TypeScript with updated dependencies and missing features added.
It aims to provide the most simple wrapper possible by just passing the configuration to the underlying ioredis
package.
Installation
npm install @tirke/node-cache-manager-ioredis
yarn add @tirke/node-cache-manager-ioredis
pnpm add @tirke/node-cache-manager-ioredis
Usage Examples
All examples have changed a bit since the new major version of node-cache-manager
Everything is now based on promises everywhere, no more callbacks.
TTL
TTL value is forwarded directly to ioredis which uses seconds as unit.
Init
I wanted to provide more type-safe ways to init the cache-manager
.
import { ioRedisStore } from '@tirke/node-cache-manager-ioredis'
import { caching } from 'cache-manager'
const defaultRedisCache = caching(ioRedisStore, {
host: 'localhost',
port: 6379,
password: 'XXXXX',
ttl: 60,
})
const instanceRedisCache = caching(ioRedisStore, {
instanceConfig: {
host: 'localhost',
port: 6379,
password: 'XXXXX',
},
ttl: 60,
})
const clusterRedisCache = caching(ioRedisStore, {
clusterConfig: {
nodes: [
{ port: 6380, host: '127.0.0.1' },
{ port: 6381, host: '127.0.0.1' },
],
},
ttl: 60,
})
import Redis from 'ioredis'
const instance = new Redis()
const instantiatedRedisCache = caching(ioRedisStore, {
redisInstance: instance,
ttl: 60,
})
Generic usage
import { ioRedisStore, RedisCache } from '@tirke/node-cache-manager-ioredis'
import { caching } from 'cache-manager'
const redisCache: RedisCache = caching(ioRedisStore, {
host: 'localhost',
port: 6379,
password: 'XXXXX',
ttl: 600,
})
const cache = redisCache.store
cache.client.on('error', (error: unknown) => {
console.log(error)
})
await redisCache.set('foo', 'bar', { ttl: 5 })
const result = await redisCache.get('foo')
await redisCache.del('foo')
Flush all DBs
import { ioRedisStore, RedisCache } from '@tirke/node-cache-manager-ioredis'
import { caching } from 'cache-manager'
const redisCache: RedisCache = caching(ioRedisStore, {
host: 'localhost',
port: 6379,
password: 'XXXXX',
ttl: 600,
})
const cache = redisCache.store
cache.client.on('error', (error: unknown) => {
console.log(error)
})
await redisCache.reset()