Tag-Based Cache Invalidation & Granular Eviction
1Concept
`HybridCache` allows tagging cached items (e.g. `tags: ["tenant:42", "catalog"]`). Calling `RemoveByTagAsync("catalog")` invalidates all matching cache entries across L1 and L2 simultaneously.
2Architecture Diagram
Cached Keys:
├── "product:1" [Tag: "catalog"]
├── "product:2" [Tag: "catalog"]
└── "user:99" [Tag: "users"]
│
hybridCache.RemoveByTagAsync("catalog") ──> Evicts product:1 & product:2 instantly!3Code Example
C# 13 & .NET 9
using System;
public class TaggedCacheConceptDemo
{
public static void Main()
{
Console.WriteLine("Tag-based cache invalidation enables clean domain-driven cache invalidation across distributed clusters.");
}
}4Expected Output
Tag-based cache invalidation enables clean domain-driven cache invalidation across distributed clusters.
5Key Takeaways
- ✓Eliminates complex manual key prefix scanning in Redis.
- ✓Ideal for multi-tenant SaaS applications (`RemoveByTagAsync("tenant:id")`).
- ✓Supported natively in .NET 9.