@antelopejs/interface-redis
v0.0.10
Published
AntelopeJS interface for direct access to the shared Redis client
Readme
@antelopejs/interface-redis
The AntelopeJS interface for direct access to the project's Redis client. Modules share one connection for caching, counters, publishing, and any other Redis command. A subscription needs a connection of its own.
Part of AntelopeJS, the TypeScript framework where modules depend on contracts and the application chooses the provider. Built by the team behind AntelopeJS DMS.
What it offers
GetClient()resolves to the project's shared ioredis client once the implementing module has created it.- The client is an ioredis
Redisinstance, with every Redis command, transactions, and pipelines. - Every module reuses the one connection that the implementing module opens, configures, and quits when it stops.
Implementations
| Module | Notes |
| ---------------------------------------------------------- | ------------------------------------------------------- |
| @antelopejs/redis | Also implements @antelopejs/interface-redis-scheduler |
Install
Add the interface to the module that talks to Redis:
pnpm add @antelopejs/interface-redisThen add the implementation to the project:
ajs project modules add @antelopejs/redisQuick start
import { GetClient } from "@antelopejs/interface-redis";
const CACHE_TTL_SECONDS = 60;
export async function cachePage(path: string, html: string) {
const client = await GetClient();
await client.set(`page:${path}`, html, "EX", CACHE_TTL_SECONDS);
}
export async function readCachedPage(path: string) {
const client = await GetClient();
return await client.get(`page:${path}`);
}Documentation
Compatibility
The interface has one AntelopeJS peer dependency:
| Package | Supported | Tested with |
| ---------------------------- | ---------------- | ----------- |
| @antelopejs/interface-core | >=0.2.4 <1.0.0 | 0.4.0 |
The Redis driver is the runtime dependency:
| Package | Range |
| --------- | --------- |
| ioredis | ^5.10.1 |
Contributing
Read CONTRIBUTING.md before you open a pull request. The local checks are:
pnpm install
pnpm run checks