Skip to content

ramiel/mikro-orm-cache-adapter-redis

Repository files navigation

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({
  // Your options
  resultCache: {
    adapter: RedisCacheAdapter,
    options: {
      // Base options
      // An optional key prefix. By default is `mikro`
      keyPrefix: 'mikro'
      // Optional: print debug informations
      debug: false,


      // Here goes IORedis connection options (the library will instantiate the client)
      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({
  // Your options
  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.

Testing

You need docker compose to run the tests.

# Start test services
npm run test:services:start

# Run tests
npm test

About

A redis cache adapter for mikro-orm

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •