Kck.Caching.Abstractions
3.4.0
dotnet add package Kck.Caching.Abstractions --version 3.4.0
NuGet\Install-Package Kck.Caching.Abstractions -Version 3.4.0
<PackageReference Include="Kck.Caching.Abstractions" Version="3.4.0" />
<PackageVersion Include="Kck.Caching.Abstractions" Version="3.4.0" />
<PackageReference Include="Kck.Caching.Abstractions" />
paket add Kck.Caching.Abstractions --version 3.4.0
#r "nuget: Kck.Caching.Abstractions, 3.4.0"
#:package Kck.Caching.Abstractions@3.4.0
#addin nuget:?package=Kck.Caching.Abstractions&version=3.4.0
#tool nuget:?package=Kck.Caching.Abstractions&version=3.4.0
Kck.Caching.Abstractions
Storage-agnostic caching abstractions with stampede-safe ICacheService.GetOrSetAsync and prefix-based bulk invalidation.
Installation
dotnet add package Kck.Caching.Abstractions
Quick Start
// Program.cs — register a concrete provider (e.g. Kck.Caching.InMemory or Kck.Caching.Redis)
builder.Services.AddKckInMemoryCache();
// or: builder.Services.AddKckRedisCache(builder.Configuration);
// Use ICacheService in a service/handler
public class ProductService(ICacheService cache)
{
public async Task<Product?> GetProductAsync(int id, CancellationToken ct)
{
// Fetches from cache; on miss calls the factory and stores the result
return await cache.GetOrSetAsync(
key: $"product:{id}",
factory: async () => await _db.Products.FindAsync(id, ct),
ttl: TimeSpan.FromMinutes(10),
ct: ct);
}
public async Task InvalidateCategoryAsync(int categoryId, CancellationToken ct)
{
// Remove all keys sharing the "category:{categoryId}" prefix
await cache.RemoveByPrefixAsync($"category:{categoryId}", ct);
}
}
Configuration
| Property | Description | Default |
|---|---|---|
Caching:DefaultTtlSeconds |
Default TTL when none is specified | 300 |
Caching:KeyPrefix |
Global key prefix (useful for multi-tenant) | "" |
Resources
| 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
- No dependencies.
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Kck.Caching.Abstractions:
| Package | Downloads |
|---|---|
|
Kck.Caching.InMemory
IMemoryCache-backed ICacheService implementation with key tracking and stampede-safe GetOrSetAsync (64-stripe locking). Suitable for single-instance deployments. Registered via AddKckCachingInMemory(). |
|
|
Kck.Bundle.WebApi
Opinionated ASP.NET Core WebAPI starter pack. Registers Serilog, in-memory caching, JWT auth, Argon2 hashing, InMemory event bus, OpenTelemetry, rate limiting, security headers, CORS, and global exception handling in a single AddKckWebApiDefaults() call. |
|
|
Kck.Bundle.MinimalApi
Lightweight ASP.NET Core Minimal API starter pack. Slim variant of the WebAPI bundle — provides Serilog, in-memory caching, JWT, exception handling, and health checks without MediatR pipeline or Argon2 overhead. |
|
|
Kck.Caching.Redis
StackExchange.Redis-backed ICacheService for distributed caching. Supports key-prefix namespacing, O(1) EXISTS checks, and chunked 1000-key prefix-delete operations. Registered via AddKckCachingRedis() with connection string or ConfigurationOptions. |
|
|
Kck.Caching.Hybrid
Two-tier ICacheService implementation backed by Microsoft.Extensions.Caching.Hybrid. Combines L1 in-process memory (fast) and L2 Redis (distributed) caching. SetAsync writes to both layers; RemoveAsync evicts from both. Registered via AddKckCachingHybrid(). |
GitHub repositories
This package is not used by any popular GitHub repositories.