DKNet.AspCore.Idempotency.RedisStore
13.3.1
dotnet add package DKNet.AspCore.Idempotency.RedisStore --version 13.3.1
NuGet\Install-Package DKNet.AspCore.Idempotency.RedisStore -Version 13.3.1
<PackageReference Include="DKNet.AspCore.Idempotency.RedisStore" Version="13.3.1" />
<PackageVersion Include="DKNet.AspCore.Idempotency.RedisStore" Version="13.3.1" />
<PackageReference Include="DKNet.AspCore.Idempotency.RedisStore" />
paket add DKNet.AspCore.Idempotency.RedisStore --version 13.3.1
#r "nuget: DKNet.AspCore.Idempotency.RedisStore, 13.3.1"
#:package DKNet.AspCore.Idempotency.RedisStore@13.3.1
#addin nuget:?package=DKNet.AspCore.Idempotency.RedisStore&version=13.3.1
#tool nuget:?package=DKNet.AspCore.Idempotency.RedisStore&version=13.3.1
DKNet.AspCore.Idempotency.RedisStore
Redis-backed reservations and TTL-based response retention for .NET developers using DKNet idempotency.
✨ Why use it?
- Share a key ledger across hosts connected to the same Redis database.
- Reserve keys atomically without relational schema migrations.
- Expire reservations and completed values through Redis TTLs.
🚀 Quick Start
Use a .NET 10 ASP.NET Core project.
dotnet new web -f net10.0 -n PackageDemo
cd PackageDemo
dotnet add package DKNet.AspCore.Idempotency.RedisStore
Replace Program.cs with the example, then run dotnet run.
Set ConnectionStrings__Redis to a reachable Redis connection string. The Redis server must support the atomic SET NX GET operation used by StackExchange.Redis.
using DKNet.AspCore.Idempotency;
using DKNet.AspCore.Idempotency.RedisStore;
var builder = WebApplication.CreateBuilder(args);
var connection = builder.Configuration.GetConnectionString("Redis")
?? throw new InvalidOperationException("Set ConnectionStrings__Redis.");
builder.Services.AddIdempotencyWithRedisStore(connection);
var app = builder.Build();
app.MapPost("/orders", () => Results.Ok(new { Accepted = true }))
.RequiredIdempotentKey();
await app.RunAsync();
POST twice with X-Idempotency-Key: order-1. The first returns 200 and the retry 409. Instances sharing this Redis database and prefix share the ledger.
Documentation
| Guide | Read when |
|---|---|
| Package overview | Start with architecture and the end-to-end flow. |
| Register Redis connections and select the store | Reuse Redis connections and select the internal store. |
| Reserve Redis keys and retain response values | Trace atomic set-and-get reservation, logical expiry, and TTL writes. |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- DKNet.AspCore.Idempotency (>= 13.3.1)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 13.3.1 | 29 | 10/26/2026 |
| 13.3.0 | 85 | 10/22/2026 |
| 13.2.8 | 54 | 10/22/2026 |
| 13.2.7 | 122 | 10/11/2026 |
| 13.2.6 | 97 | 10/10/2026 |
| 13.2.5 | 333 | 10/2/2026 |
| 13.2.4 | 93 | 10/1/2026 |
| 13.2.3 | 93 | 10/1/2026 |
| 13.2.2 | 90 | 10/1/2026 |
| 13.2.1 | 91 | 10/1/2026 |
| 13.2.0 | 91 | 10/1/2026 |
| 13.1.3 | 168 | 9/21/2026 |
| 13.1.2 | 360 | 9/18/2026 |
| 13.1.1 | 101 | 9/18/2026 |
| 13.1.0 | 103 | 9/18/2026 |
| 13.0.2 | 93 | 9/18/2026 |
| 13.0.1 | 101 | 9/18/2026 |
| 13.0.0 | 112 | 9/18/2026 |
| 12.0.0 | 105 | 9/17/2026 |
| 11.0.0 | 175 | 9/17/2026 |