Tharga.Cache.Redis
1.1.5
dotnet add package Tharga.Cache.Redis --version 1.1.5
NuGet\Install-Package Tharga.Cache.Redis -Version 1.1.5
<PackageReference Include="Tharga.Cache.Redis" Version="1.1.5" />
<PackageVersion Include="Tharga.Cache.Redis" Version="1.1.5" />
<PackageReference Include="Tharga.Cache.Redis" />
paket add Tharga.Cache.Redis --version 1.1.5
#r "nuget: Tharga.Cache.Redis, 1.1.5"
#:package Tharga.Cache.Redis@1.1.5
#addin nuget:?package=Tharga.Cache.Redis&version=1.1.5
#tool nuget:?package=Tharga.Cache.Redis&version=1.1.5
Tharga.Cache.Redis
Redis persistence backend for Tharga.Cache. Store cached data in Redis for sharing across instances or surviving application restarts.
Get Started
dotnet add package Tharga.Cache
dotnet add package Tharga.Cache.Redis
builder.Services.AddCache(o =>
{
o.AddRedisDBOptions(r =>
r.ConnectionStringLoader = sp => "localhost:6379");
o.RegisterType<SessionData, IRedis>();
});
Any type registered with IRedis is persisted to Redis. Unregistered types default to in-memory caching.
Why Redis?
- Shared cache across multiple application instances
- Survives restarts — cached data is not lost on deploy
- High throughput with low latency
Resilience (fail-open)
If Redis becomes unreachable, the cache fails open: a backend read error is treated as a miss so the
call falls through to your source loader, and a backend write error is swallowed. A cache outage therefore
never faults the caller as long as the source of truth is healthy. This is on by default and can be turned
off with CacheOptions.FailOpenOnBackendError = false (which restores the previous throwing behavior).
A Polly circuit breaker sits in front of the Redis connection so a sustained outage short-circuits immediately instead of paying retry latency on every call (which is what prevents thread-pool starvation). The breaker recovers automatically once Redis is healthy again.
o.AddRedisDBOptions(r =>
{
r.ConnectionStringLoader = sp => "localhost:6379";
r.RetryCount = 3; // transient-error retries before a call fails (default 3)
r.CircuitBreakerFailureThreshold = 5; // consecutive failures before the circuit opens (default 5)
r.CircuitBreakerDuration = TimeSpan.FromSeconds(30); // how long it stays open before probing again (default 30s)
r.CommandTimeout = TimeSpan.FromSeconds(1); // optional shorter per-command timeout for fast fail-open
});
Documentation
Full documentation, configuration options, and samples are available on the GitHub project page.
License
MIT
| 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
- Polly (>= 8.8.1)
- StackExchange.Redis (>= 3.4.20)
- Tharga.Cache (>= 1.1.5)
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 |
|---|---|---|
| 1.1.5 | 244 | 10/28/2026 |
| 1.1.4 | 101 | 10/27/2026 |
| 1.1.3 | 101 | 10/26/2026 |
| 1.1.2 | 251 | 9/28/2026 |
| 1.1.1 | 294 | 8/24/2026 |
| 1.1.0 | 170 | 8/17/2026 |
| 1.0.2 | 128 | 8/15/2026 |
| 1.0.1 | 138 | 8/13/2026 |
| 1.0.0 | 152 | 7/26/2026 |
| 0.4.9 | 358 | 6/26/2026 |
| 0.4.8 | 210 | 6/15/2026 |
| 0.4.7 | 141 | 6/11/2026 |
| 0.4.6 | 212 | 5/18/2026 |
| 0.4.5 | 158 | 5/11/2026 |
| 0.4.4 | 142 | 5/10/2026 |
| 0.4.3 | 132 | 5/6/2026 |
| 0.4.2 | 136 | 4/29/2026 |
| 0.4.1 | 135 | 4/18/2026 |
| 0.4.0 | 168 | 4/6/2026 |
| 0.3.8 | 134 | 4/6/2026 |