@biorate/redis
v2.1.3
Published
Redis connector
Readme
@biorate/redis
Redis connector — connection manager for ioredis with multi-connection support.
Features
- Auto-connect — creates
ioredis.Redisclient on@init()via config namespaceRedis. - Full Redis API — all 5.x commands via the standard
ioredisinterface. - Multi-connection — named connection support.
- Typed errors —
RedisCantConnectErroron connection failure.
Installation
pnpm add @biorate/redisRequires @biorate/connector, @biorate/inversion, @biorate/config, ioredis@5.
Quick start
import { inject, container, Types, Core } from '@biorate/inversion';
import { IConfig, Config } from '@biorate/config';
import { RedisConnector } from '@biorate/redis';
class Root extends Core() {
@inject(RedisConnector) public connector: RedisConnector;
}
container.bind<IConfig>(Types.Config).to(Config).inSingletonScope();
container.bind<RedisConnector>(RedisConnector).toSelf().inSingletonScope();
container.bind<Root>(Root).toSelf().inSingletonScope();
container.get<IConfig>(Types.Config).merge({
Redis: [{
name: 'connection',
options: { host: 'localhost', port: 6379 },
}],
});
(async () => {
const root = container.get<Root>(Root);
await root.$run();
await root.connector.current!.set('key', 'value');
const result = await root.connector.current!.get('key');
console.log(result); // 'value'
})();API Reference
RedisConnector
| Member | Type | Description |
|------------------|-------------------------------------------|------------------------------------------|
| namespace | 'Redis' | Config key for connection definitions. |
| connect(config) | (config) => Promise<Redis> | Creates new Redis(config.options). |
Config
interface IRedisConfig extends IConnectorConfig {
options: RedisOptions; // host, port, password, db, etc.
}Errors
| Error | Condition |
|--------------------------|----------------------------------------------|
| RedisCantConnectError | new Redis() or initial connection fails. |
Architecture
RedisConnector extends Connector<IRedisConfig, Redis>
│
├── namespace = 'Redis'
├── connect(config) → new Redis(config.options)
└── connection is an ioredis.Redis instanceLearn
- Documentation can be found here - docs.
Release History
See the CHANGELOG
