HybridCache 混合缓存
asp.net core 9中,引入了HyBridCache,本质上他并不是全新的一种缓存,而以与原来的缓存复合使用。
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net9.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="9.0.0-preview.4.24267.6" /> </ItemGroup> </Project>
下面的例子,time0是内存缓存,time1是基于Redis分布式缓存,time3是混合式缓存。
如果说time0,time1是自己当家做主的话,那么tim2就要基于Memory或Distributed缓存了。默认状况下,builder.Services.AddHybridCache是基于内存缓存的,如果想基于别的分布式缓存,只需要添加对应的Service就可以了。
using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Caching.Hybrid; using Microsoft.Extensions.Caching.Memory; var builder = WebApplication.CreateBuilder(args); builder.Services.AddMemoryCache(); builder.Services.AddStackExchangeRedisCache(opt => { opt.ConfigurationOptions = new StackExchange.Redis.ConfigurationOptions { EndPoints = { "localhost:6379" }, AbortOnConnectFail = false }; }); builder.Services.AddHybridCache(); var app = builder.Build(); app.MapGet("/time0", async (IMemoryCache cache) => { return await cache.GetOrCreateAsync("time0", async _ => await Task.FromResult(DateTime.Now)); }); app.MapGet("/time1", async (IDistributedCache cache) => { var time = await cache.GetStringAsync("time1"); if (string.IsNullOrWhiteSpace(time)) { time = DateTime.Now.ToString(); await cache.SetStringAsync("time1", time); } return time; }); app.MapGet("/time2", async (HybridCache cache) => { return await cache.GetOrCreateAsync("time2", async _ => await Task.FromResult(DateTime.Now)); }); app.Run();
如上代码,如果添加了内存,和一种分布式,那么混合缓存用的是谁呢?请自行试验,可以把结果同步到本篇文章的评论里。:)
文章来源微信公众号
想要更快更方便的了解相关知识,可以关注微信公众号
****欢迎关注我的asp.net core系统课程****
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2018-03-01 Ocelot + Consul实践