Skip to content

Redis Streams

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker.

Redis Stream is a new data type introduced with Redis 5.0, which models a log data structure in a more abstract way with an append only data structure.

Redis Streams can be used in CAP as a message transporter.

Configuration

To use Redis Streams transporter, you need to install the following package from NuGet:

PM> Install-Package DotNetCore.CAP.RedisStreams

Then you can add configuration items to the ConfigureServices method of Startup.cs.

public void ConfigureServices(IServiceCollection services)
{
    services.AddCap(capOptions =>
    {
        capOptions.UseRedis(redisOptions=>{
            //redisOptions
        });
    });
}

Redis Streams Options

Redis configuration parameters provided directly by the CAP:

NAME DESCRIPTION TYPE DEFAULT
Configuration redis connection configuration (StackExchange.Redis) ConfigurationOptions ConfigurationOptions
StreamEntriesCount number of entries returned from a stream while reading uint 10
ConnectionPoolSize number of connections pool uint 10
OnConsumeError callback function that will be invoked when an error occurred during message consumption. Func null
#### Redis Configuration Options

If you need more native Redis related configuration options, you can set them in the Configuration option:

services.AddCap(capOptions => 
{
    capOptions.UseRedis(redisOptions=>
    {
        // redis options.
        redisOptions.Configuration.EndPoints.Add(IPAddress.Loopback, 0);
    });
});

Configuration is a StackExchange.Redis ConfigurationOptions , you can find more details through this link

Streams Cleanup Notes

Since redis streams does not have the feature of deletes all messages that already acknowledged by all groups issue , so you need to consider if using a script to perform the deletion regularly.