Redis integration for AsenaJS — a @Redis service client, a multi-pod WebSocket transport and a Redis Streams microservice transport.
Requirements: Bun 1.4+, @asenajs/asena 0.11+.
bun add @asenajs/asena-redisimport { Redis, AsenaRedisService } from '@asenajs/asena-redis';
@Redis({ config: { url: 'redis://localhost:6379' }, name: 'AppRedis' })
export class AppRedis extends AsenaRedisService {}Asena discovers it, connects on start and disconnects on stop. Inject it anywhere:
import { Service } from '@asenajs/asena/decorators';
import { Inject } from '@asenajs/asena/decorators/ioc';
@Service()
export class GreetingService {
@Inject('AppRedis')
private redis: AppRedis;
async greet(name: string): Promise<string> {
await this.redis.set(`greeting:${name}`, `Hello, ${name}`, 60);
return (await this.redis.get(`greeting:${name}`)) ?? '';
}
}Full documentation: asena.sh/docs/packages/redis
Contributions are welcome! Submit a Pull Request on GitHub.
MIT
Issues or questions? Open an issue on GitHub.