![npm version](https://badge.fury.io/js/@tirke%2Fnode-cache-manager-ioredis.svg)
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
Init
I wanted to provide more type-safe ways to init the cache-manager
.
import { IoRedisStore, Store } from '@tirke/node-cache-manager-ioredis'
import { caching } from 'cache-manager'
const defaultRedisCache = caching({
store: IoRedisStore,
host: 'localhost',
port: 6379,
password: 'XXXXX',
db: 0,
ttl: 600,
})
const instanceRedisCache = caching({
store: IoRedisStore,
instanceConfig: {
host: 'localhost',
port: 6379,
password: 'XXXXX',
},
ttl: 600,
})
const clusterRedisCache = caching({
store: IoRedisStore,
clusterConfig: {
nodes: [
{ port: 6380, host: '127.0.0.1' },
{ port: 6381, host: '127.0.0.1' },
],
},
ttl: 600,
})
import Redis from 'ioredis'
const instance = new Redis()
const instantiatedRedisCache = caching({
store: IoRedisStore,
redisInstance: instance,
ttl: 600,
})
Generic usage with promises
import { IoRedisStore, Store } from '@tirke/node-cache-manager-ioredis'
import { caching } from 'cache-manager'
const redisCache = caching({
store: IoRedisStore,
host: 'localhost',
port: 6379,
password: 'XXXXX',
db: 0,
ttl: 600,
})
const cache = redisCache.store as Store
const redisClient = cache.getClient()
redisClient.on('error', (error: unknown) => {
console.log(error)
})
await redisCache.set('foo', 'bar', { ttl: 5 })
const result = await redisCache.get('foo')
await redisCache.del('foo')