The Redis transporter implements the publish/subscribe messaging paradigm and leverages the Pub/Sub feature of Redis. Published messages are categorized in channels, without knowing what subscribers (if any) will eventually receive the message. Each microservice can subscribe to any number of channels. In addition, more than one channel can be subscribed to at a time. Messages exchanged through channels are fire-and-forget, which means that if a message is published and there are no subscribers interested in it, the message is removed and cannot be recovered. Thus, you don't have a guarantee that either messages or events will be handled by at least one service. A single message can be subscribed to (and received) by multiple subscribers.
To start building Redis-based microservices, first install the required package:
To use the Redis transporter, pass the following options object to the
info Hint The
Transportenum is imported from the
options property is specific to the chosen transporter. The Redis transporter exposes the properties described below.
|Number of times to retry message (default: |
|Delay between message retry attempts (ms) (default: |
All the properties supported by the official redis client are also supported by this transporter.
Like other microservice transporters, you have several options for creating a Redis
One method for creating an instance is to use use the
ClientsModule. To create a client instance with the
ClientsModule, import it and use the
register() method to pass an options object with the same properties shown above in the
createMicroservice() method, as well as a
name property to be used as the injection token. Read more about
Other options to create a client (either
@Client()) can be used as well. You can read about them here.
In more sophisticated scenarios, you may want to access more information about the incoming request. When using the Redis transporter, you can access the
RedisContextare imported from the