Redis
 sql >> Baza danych >  >> NoSQL >> Redis

jak korzystać z mikroserwisu redis Nestjs?

Trzeba rozdzielić dwie strony. Mogą być częścią jednej aplikacji nest.js (np. aplikacji hybrydowej) lub znajdować się w kilku różnych aplikacjach nest.js:

Klient

Klient emituje wiadomości na temat/wzorzec i otrzymuje odpowiedź od odbiorców wyemitowanej wiadomości.

Najpierw musisz połączyć swojego klienta. Możesz to zrobić w onModuleInit . W tym przykładzie ProductService emituje komunikat, gdy tworzony jest nowy produkt.

@Injectable()
export class ProductService implements OnModuleInit {

  @Client({
    transport: Transport.REDIS,
    options: {
      url: 'redis://localhost:6379',
    },
  })
  private client: ClientRedis;

  async onModuleInit() {
    // Connect your client to the redis server on startup.
    await this.client.connect();
  }

  async createProduct() {
    const newProduct = await this.productRepository.createNewProduct();
    // Send data to all listening to product_created
    const response = await this.client.send({ type: 'product_created' }, newProduct).toPromise();
    return response;
  }
}

Pamiętaj, że this.client.send zwraca Observable . Oznacza to, że nic się nie stanie, dopóki subscribe do niego (co można zrobić pośrednio, wywołując toPromise() ).

Obsługa wzorów

Procedura obsługi wzorca zużywa wiadomości i wysyła odpowiedź z powrotem do klienta.

@Controller()
export class NewsletterController {

  @MessagePattern({ type: 'product_created' })
  informAboutNewProduct(newProduct: ProductEntity): string {
    await this.sendNewsletter(this.recipients, newProduct);
    return `Sent newsletter to ${this.recipients.length} customers`;
  }

Oczywiście, operator param może być również klientem, a tym samym zarówno odbierać, jak i rozgłaszać komunikaty.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MISCONF Redis jest skonfigurowany do zapisywania migawek RDB

  2. Jak włączyć TLS dla Redis 6 w Sidekiq?

  3. Redis Vs RabbitMQ jako broker danych/system przesyłania wiadomości pomiędzy Logstash a elasticsearch

  4. Czy wątek Redis list lub set metoda pop jest bezpieczny?

  5. StackExchange.Redis prosty przykład C#