Skip to content

MyUnisoft/Redis

Repository files navigation

Redis

MyUnisoft Redis package.

npm version license size

🚧 Requirements

  • Node.js version 18 or higher.
  • Docker (for running tests).

Tip

If you ever want to setup a local instance of Redis,
you can follow the Redis documentation for Mac,
or, you can use Memurai for Windows.

🚀 Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @myunisoft/redis
# or
$ yarn add @myunisoft/redis

📚 Usage

Important

The package export methods to instantiate and close connection to Redis. By default, all features automatically re-use the current Redis connection.

import assert from "assert";
import {
  initRedis,
  getRedis,
  closeAllRedis
} from "@myunisoft/redis";

const publisher = await initRedis();
const subscriber = await initRedis({}, "subscriber");

assert.strictEqual(publisher, getRedis());
assert.strictEqual(subscriber, getRedis("subscriber"));

await closeAllRedis();

📜 API

export type Instance = "subscriber" | "publisher";

type CustomRedisOptions: Partial<RedisOptions> & {
  port?: number;
  host?: string;
};

getRedis(instance: Instance = "publisher"): Redis;

This function return either the publisher instance, either the subscriber instance.


initRedis(redisOptions: CustomRedisOptions = {}, instance: Instance = "publisher", external?: boolean): Promise< Redis >

This function is used to init redis connections. Passing instance with "subscriber" value, it init the local subscriber Redis instance. Otherwise, it init the local publisher Redis instance.


getConnectionPerf(instance: Instance = "publisher", redisInstance?: Redis): Promise< GetConnectionPerfResponse >

export interface GetConnectionPerfResponse {
  isAlive: boolean;
  perf?: number;
}

This function is used to check Redis connection state.

const { isAlive } = await getConnectionPerf(); // true

closeRedis(instance: Instance = "publisher", redisInstance?: Redis, forceExit: boolean = false): Promise< void >

This function is used to close a single local instance.


closeAllRedis(redisInstance?: [Redis, Redis], forceExit: boolean = false): Promise< void >

This function is used to close every local instances.


clearAllKeys(instance: Instance = "publisher", redis?: Redis): Promise< void >

This function is used to clear all keys from redis db (it doesn't clean up streams or pubsub !).

await clearAllKeys();

The package also exports many classes listed below.

Contributors ✨

All Contributors

Thanks goes to these wonderful people (emoji key):

Nicolas Hallaert
Nicolas Hallaert

💻 ⚠️ 📖 👀
PierreDemailly
PierreDemailly

👀 ⚠️
Thomas.G
Thomas.G

💻 ⚠️ 📖 👀

This project follows the all-contributors specification. Contributions of any kind welcome!