Mikro-orm - Redis cache adapter
This is an adapter for redis to be used with mikro-orm.
Install it with its peer dependencies
npm i mikro-orm-cache-adapter-redis ioredis
and pass it as option to mikro-orm
import { MikroORM } from '@mikro-orm/core/MikroORM';
import { RedisCacheAdapter } from 'mikro-orm-cache-adapter-redis';
const orm = await MikroORM.init({
resultCache: {
adapter: RedisCacheAdapter,
options: {
keyPrefix: 'mikro'
debug: false,
host: '...',
port: 6379,
password: 'yourpassword'
}
}
});
Instead of passing options, you can pass directly an IORedis instance
import { RedisCacheAdapter } from "mikro-orm-cache-adapter-redis";
import Redis from "ioredis";
const myRedisClient = new Redis();
const orm = await MikroORM.init({
resultCache: {
adapter: RedisCacheAdapter,
options: {
client: myRedisClient,
},
},
});
Serializing
This package uses serialize
and deserialize
functions from the Node.js v8 API instead of JSON.stringify
and JSON.parse
.
They are inadequate for certain primitive data types like Buffer and Typed Array, as they cannot accurately reproduce same data after serialization.
You can checkout its limitation here.
But, there're still some primitives that serialize
cannot handle.
- function
- symbol
- any uncopyable data
If you need to serialize these types of data, you should using a custom serializer or custom type
If you're in debug mode, you will see JSON stringified data at your console. This is solely for debugging purposes. serialize
is used for actual cache.