CoreSystem.Idempotency.Redis
2.0.1
See the version list below for details.
dotnet add package CoreSystem.Idempotency.Redis --version 2.0.1
NuGet\Install-Package CoreSystem.Idempotency.Redis -Version 2.0.1
<PackageReference Include="CoreSystem.Idempotency.Redis" Version="2.0.1" />
<PackageVersion Include="CoreSystem.Idempotency.Redis" Version="2.0.1" />
<PackageReference Include="CoreSystem.Idempotency.Redis" />
paket add CoreSystem.Idempotency.Redis --version 2.0.1
#r "nuget: CoreSystem.Idempotency.Redis, 2.0.1"
#:package CoreSystem.Idempotency.Redis@2.0.1
#addin nuget:?package=CoreSystem.Idempotency.Redis&version=2.0.1
#tool nuget:?package=CoreSystem.Idempotency.Redis&version=2.0.1
⚡ CoreSystem.Idempotency.Redis
Redis storage provider for CoreSystem.Idempotency, built on the
IIdempotencyStorageabstraction.
It is the recommended provider for production workloads that require low latency, horizontal scalability, and automatic expiration of idempotency entries.
✨ Features
- ✅ Distributed idempotency
- ✅ High-performance Redis storage
- ✅ Automatic expiration
- ✅ Horizontal scalability
- ✅ Seamless integration with CoreSystem.Idempotency
- ✅ OpenTelemetry compatible
- ✅ Production-ready
📦 Installation
Install the framework.
dotnet add package CoreSystem.Idempotency
Install the Redis provider.
dotnet add package CoreSystem.Idempotency.Redis
🚀 Quick Start
Configure the Redis connection and register the provider.
builder.Services
.AddCoreIdempotency(options =>
{
builder.Configuration
.GetSection("Core:Idempotency")
.Bind(options);
})
.AddCoreIdempotencyRedis(options =>
{
options.Configuration = redis =>
{
redis.EndPoints.Add("localhost:6379");
};
});
The connection endpoint is supplied through the RedisOptions.Configuration delegate,
which receives a StackExchange.Redis.ConfigurationOptions instance.
To read the endpoint from configuration instead, assign it inside the same delegate.
{
"ConnectionStrings": {
"Redis": "localhost:6379"
}
}
builder.Services.AddCoreIdempotencyRedis(options =>
{
options.Configuration = redis =>
{
redis.EndPoints.Add(
builder.Configuration.GetConnectionString("Redis")!);
};
});
Note
RedisOptions.Configurationis anAction<ConfigurationOptions>, not a string. A plain connection string cannot be bound to it withBind.
Enable the middleware.
app.UseCoreIdempotency();
⚡ Why Redis?
Redis is ideal for:
- Distributed APIs
- Kubernetes deployments
- Microservices
- High request throughput
- Low-latency workloads
📊 Characteristics
| Feature | Supported |
|---|---|
| Distributed | ✅ |
| Automatic Expiration | ✅ |
| Low Latency | ✅ |
| Horizontal Scaling | ✅ |
| Durable Persistence | ⚪ (Depends on Redis configuration) |
📚 Documentation
Complete documentation includes:
- Installation
- Configuration
- Production recommendations
- Performance considerations
- Architecture
🤝 Contributing
Contributions, bug reports and feature requests are always welcome. Fork the repository, create a feature branch, and open a pull request.
📄 License
Released under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- CoreSystem.Http (>= 1.1.0)
- CoreSystem.Idempotency (>= 2.0.1)
- CoreSystem.Observability.Abstractions (>= 1.0.1)
- CoreSystem.Redis (>= 1.0.3)
- CoreSystem.Serialization (>= 1.2.3)
- OpenTelemetry.Extensions.Hosting (>= 1.19.0)
- StackExchange.Redis (>= 2.13.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Corrections release. 2.0.0 shipped a README example that did not compile:
AddCoreIdempotencyRedis was documented as parameterless, but it requires a
configuration delegate.
Also: XML documentation is published, SourceLink is enabled, and the package
metadata URLs were corrected.