Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

Nestjs redis microservice का उपयोग कैसे करें?

दो पक्ष हैं जिन्हें आपको अलग करने की आवश्यकता है। वे एक Nest.js ऐप्लिकेशन (जैसे हाइब्रिड ऐप्लिकेशन) का हिस्सा हो सकते हैं या कई अलग-अलग Nest.js ऐप्लिकेशन में हो सकते हैं:

ग्राहक

क्लाइंट किसी विषय/पैटर्न पर संदेशों को प्रसारित करता है और प्रसारित संदेश के रिसीवर (ओं) से प्रतिक्रिया प्राप्त करता है।

सबसे पहले, आपको अपने क्लाइंट को कनेक्ट करना होगा। आप इसे onModuleInit . में कर सकते हैं . इस उदाहरण में, ProductService एक नई उत्पाद इकाई बनने पर संदेश प्रसारित करता है।

@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;
  }
}

ध्यान रखें, कि this.client.send एक Observable देता है . इसका मतलब है, जब तक आप subscribe नहीं करेंगे तब तक कुछ नहीं होगा इसके लिए (जिसे आप toPromise() . पर कॉल करके परोक्ष रूप से कर सकते हैं )।

पैटर्न हैंडलर

पैटर्न हैंडलर संदेशों का उपभोग करता है और क्लाइंट को प्रतिक्रिया वापस भेजता है।

@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`;
  }

बेशक, एक परम हैंडलर एक क्लाइंट भी हो सकता है और इसके साथ ही संदेश प्राप्त और प्रसारित दोनों कर सकते हैं।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 127.0.0.1:6379 पर रेडिस से कनेक्ट नहीं हो सका:होमब्रे के साथ कनेक्शन से इनकार कर दिया

  2. लारवेल को AWS पर रेडिस क्लस्टर के साथ कैसे काम करें

  3. Redis AOF fsync (हमेशा) बनाम LSM ट्री

  4. एक रेडिस डीबी के मूल्यों में खोज रहे हैं

  5. Laravel 5.1 सत्र और Socket.IO + Redis - लॉग इन (ज्ञात) उपयोगकर्ताओं और उपयोगकर्ताओं के समूह को सूचनाएं भेजना