<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## Redis [Redis](https://redis.io/) 傳輸器實現了[Pub/Sub(發布/訂閱)](https://redis.io/topics/pubsub)消息傳遞范例,并利用了 `Redis` 的 [Pub/Sub](https://redis.io/topics/pubsub) 特性。 已發布的消息按渠道分類,不知道哪些訂閱者(如果有)最終會收到該消息。 每個微服務可以訂閱任意數量的渠道。 此外,一次可以訂閱多個頻道。這意味著如果發布了一條消息,并且沒有訂閱者對此消息感興趣,則該消息將被刪除并且無法恢復。 因此,您不能保證消息或事件將至少由一項服務處理。 一條消息可以由多個訂戶訂閱(并接收)。 ![](https://docs.nestjs.com/assets/Redis_1.png) ### 安裝 構建基于 `Redis` 的微服務,請首先安裝所需的軟件包(注意目前支持的 Redis 版本是 ^3,而不是最新的 ^4): ``` $ npm i --save redis ``` > ps:如果你的 `redis` 無法使用,請嘗試使用 `redis@^3` ### 概述 要使用 `Redis` 傳輸器,請將以下選項對象傳遞給 `createMicroservice()` 方法: > main.ts ```typescript const app = await NestFactory.createMicroservice(AppModule, { transport: Transport.REDIS, options: { url: 'redis://localhost:6379', }, }); ``` > `Transport` 需要從 `@nestjs/microservices` 包導入。 ### 選項 有許多可用的選項可以確定傳輸器的行為。`Redis` 公開了下面描述的屬性。 | | | | :--------------------- | :-------------------------- | | `url` | 連接網址| | `retryAttempts` | 連接嘗試的總數 | | `retryDelay` | 連接重試延遲(ms) | [Redis](https://www.npmjs.com/package/redis#options-object-properties)客戶端支持的所有屬性該傳輸器都支持。 ### 客戶端 像其他微服務傳輸器一樣,你可以在創建`ClientProxy`實例時傳輸[一些選項](https://docs.nestjs.com/microservices/basics#client)。 一種來創建實例的方法是使用`ClientsModule`。要使用`ClientsModule`創建一個客戶端實例,引入并使用`register()`方法并傳遞一個 `options` 對象,該對象具有與前面在 `createMicroservice()` 方法具有相同的屬性。`name`屬性被用于注入`token`,更多關于`ClientsModule`內容參見[這里](https://docs.nestjs.com/microservices/basics#client)。 ```typescript @Module({ imports: [ ClientsModule.register([ { name: 'MATH_SERVICE', transport: Transport.REDIS, options: { url: 'redis://localhost:6379', } }, ]), ] ... }) ``` 也可以使用其他創建客戶端的實例( `ClientProxyFactory` 或 `@Client()` )。 ### 上下文 在更復雜的場景中,您可能希望訪問關于傳入請求的更多信息。在`Redis` 中,您可以訪問 `RedisContext`對象。 ```typescript @MessagePattern('notifications') getDate(@Payload() data: number[], @Ctx() context: RedisContext) { console.log(`Channel: ${context.getChannel()}`); } ``` > `@Payload()`, `@Ctx()` 和 `RedisContext` 需要從 `@nestjs/microservices` 包導入.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看