Una librería sencilla y extensible para manejar caché utilizando Redis a través de ioredis
, con soporte completo para inyección de dependencias mediante tsyringe
. Incluye operaciones comunes como almacenamiento de cadenas, objetos, listas, TTL, incremento y más.
npm install @hemia/cache-manager
Crea el archivo:
src/config/di/CacheContainer.ts
import { container } from 'tsyringe';
import { CacheClient, CacheService, RedisConfig } from '@hemia/cache-manager';
const redisConfig: RedisConfig = {
host: process.env.REDIS_HOST || '127.0.0.1',
port: Number(process.env.REDIS_PORT) || 6379,
password: process.env.REDIS_PASSWORD,
db: Number(process.env.REDIS_DB) || 0,
tls: process.env.REDIS_TLS === 'true',
};
container.register<CacheClient>('CacheClient', {
useFactory: () => new CacheClient(redisConfig),
});
container.registerSingleton<CacheService>('CacheService', CacheService);
export default container;
import { injectable, inject } from 'tsyringe';
import { CacheService } from '@hemia/cache-manager';
@injectable()
export class ResourceController {
constructor(
@inject('CacheService') private cacheService: CacheService,
@inject('InjectedString') private injectedString: string
) {}
}
setString(key: string, value: string | number, expireTime?: number): Promise<void>
getString(key: string): Promise<string | null>
setObject<T>(key: string, value: T, expireTime?: number): Promise<void>
getObject<T>(key: string): Promise<T | null>
setList(key: string, value: string | number): Promise<void>
getList(key: string, start?: number, stop?: number): Promise<string[]>
deleteKey(key: string): Promise<void>
expire(key: string, seconds: number): Promise<void>
exists(key: string): Promise<boolean>
increment(key: string): Promise<number>
decrement(key: string): Promise<number>
getKeysByPattern(pattern: string): Promise<string[]>
getTTL(key: string): Promise<number>
interface RedisConfig {
host: string;
port: number;
username?: string;
password?: string;
db: number;
tls?: boolean;
}
MIT — © Hemia Technologies
Desarrollado por Hemia Technologies