MyUnisoft Redis package.
- 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.
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
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();
export type Instance = "subscriber" | "publisher";
type CustomRedisOptions: Partial<RedisOptions> & {
port?: number;
host?: string;
};
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.
This function is used to close every local instances.
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.
Thanks goes to these wonderful people (emoji key):
Nicolas Hallaert 💻 |
PierreDemailly 👀 |
Thomas.G 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!