Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

489
Vistas
¿Cómo usar el cliente redis en nestjs?

Tengo un microservicio en NestJs, aquí está el archivo main.ts:

 async function bootstrap() { const app = await NestFactory.createMicroservice<MicroserviceOptions>(AppModule, { transport: Transport.REDIS, options: { url: 'redis://localhost:6379', } }) await app.listen(); console.log('Redis is running'); } bootstrap();

Quiero hacer llamadas a redis db desde el servicio:

 import { createClient } from '@redis/client'; async createWorkspaceShareCode(data: GetWorkspaceShareCodeMessage) { const client = createClient({ url: 'redis://localhost:6379' }); await client.connect(); await client.set('key', 'value'); const value = await client.get('key'); return value; }

Pero eso no es lo que quiero, aquí están los problemas:

  • cada vez que hago una solicitud, crea una nueva conexión
  • Necesito escribir este código en cada función para conectarme a redis (aunque ya estoy conectado en el archivo main.ts) Aquí está la pregunta: ¿cómo puedo usar algún tipo de RedisService en mi microservicio NestJs? Ya intenté instalar las bibliotecas redis y nestjs-redis, pero la primera crea el problema descrito anteriormente y la segunda simplemente me arroja un error: https://github.com/skunight/nestjs-redis/issues/97
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo que haría es mantener su createMicroservice como lo tiene, ya que será necesario para un servidor de microservicios basado en Redis. Luego puede crear un módulo que exporte un servicio redis así:

 @Module({ providers: [ { provide: 'REDIS_OPTIONS', useValue: { url: 'redis://localhost:6379' } }, { inject: ['REDIS_OPTIONS'] provide: 'REDIS_CLIENT', useFactory: async (options: { url: string }) => { const client = createClient(options); await client.connect(); return client; } } ], exports: ['REDIS_CLIENT'], }) export class RedisModule {}

Ahora, en el módulo que contiene el servicio que desea usar, agregue RedisModule a la matriz de imports y en el servicio puede hacer @Inject('REDIS_CLIENT') private readonly redis: Redis para inyectar la instancia de redis y usarla con this.redis.get('key') y this.redis.set('key', value)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda