Agent skill
dotnet-hybridcache-fusioncache
.NET HybridCache 与 FusionCache 的 L1/L2 多级缓存实践。
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/dotnet-hybridcache-fusioncache
SKILL.md
HybridCache + FusionCache (L1/L2)
1. 选型指南
- HybridCache (原生):适用于标准 .NET 9+ 项目,提供统一抽象、Stampede protection 和 Tag 失效。
- FusionCache:适用于对容错要求极高(Fail-safe)、倾向于软负载均衡或快速响应(Timeouts)的场景。
- 推荐方案:业务层依赖
HybridCache接口,DI 中使用AddFusionCache().AsHybridCache()。
2. 核心指令 (Directives)
- 命名规范:Key 格式必须为
"{domain}:{entity}:{id/slug}"。 - 多节点一致性:多实例部署必须配置 Backplane (Redis/NATS),禁止只配 L2 而忽略 L1 失效广播。
- 序列化防护:必须显式注册
IFusionCacheSerializer;Redis 下推荐FusionCacheSystemTextJsonSerializer。 - 安全性:禁止将未处理的用户输入直接用于缓存 Key;敏感对象缓存前需考虑 DTO 转换。
- 不可变性:缓存对象应设为
sealed且属性只读,避免对取出对象进行原地修改。
3. 配置配方 (Recipes)
A. 基础 HybridCache (Redis)
builder.Services.AddHybridCache(options => {
options.DefaultEntryOptions = new() { Expiration = TimeSpan.FromHours(1) };
});
builder.Services.AddStackExchangeRedisCache(o => o.Configuration = "redis_connection");
B. 高韧性 FusionCache (Backplane + Fail-safe)
builder.Services.AddFusionCache()
.WithDefaultOptions(o => {
o.Duration = TimeSpan.FromMinutes(5);
o.IsFailSafeEnabled = true;
o.FactorySoftTimeout = TimeSpan.FromMilliseconds(100);
})
.WithSerializer(new FusionCacheSystemTextJsonSerializer())
.WithDistributedCache(new RedisCache(...))
.WithBackplane(new RedisBackplane(...));
C. 桥接模式 (HybridCache API + FusionCache Engine)
builder.Services.AddFusionCache().AsHybridCache();
4. 严禁行为 (Anti-Patterns)
- ❌ 孤立 L2:配置分布式缓存却不配置 Backplane 同步 L1(导致各节点数据不一致)。
- ❌ 侧漏修改:修改从缓存取出的引用对象(引发内存并发安全性问题)。
- ❌ 盲目缓存:在频繁变动且无热点的 Key 上使用 L2(增加网络 IO 负担)。
- ❌ 忽略取消令牌:在异步方法中调用
GetOrCreateAsync却不传递CancellationToken。
5. 提示词示例 (Prompting)
- "将这段
IMemoryCache代码重构为HybridCache,并添加 100ms 的 Soft Timeout。" - "为该服务添加 Backplane 配置,确保多节点下缓存主动失效一致。"
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?