首页 > 编程语言 >ASP.NET WebApi(.Net Framework) 应用CacheManager

ASP.NET WebApi(.Net Framework) 应用CacheManager

时间:2023-12-14 11:15:41浏览次数:48  
标签:WebApi ASP settings Framework CacheManager new Net

ASP.NET WebApi(.Net Framework) 应用CacheManager ,内存+Redis

1,WebApi 版本选.net4.6.2 以上版本
2,nuget包
Unity (4.0.0.1)
Unity.AspNet.WebApi (4.0.0.1)
CacheManager.Core
CacheManager.Microsoft.Extensions.Caching.Memory
CacheManager.Microsoft.Extensions.Configuration
CacheManager.Serialization.Json
CacheManager.StackExchange.Redis
CacheManager.SystemRuntimeCaching

3,web.config 添加
<connectionStrings>
<add name="redisConnection" connectionString="ip:6379,password=****" />
</connectionStrings>

4, 启动位置,添加代码
protected void Application_Start()
{
var container = new UnityContainer();

AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);

var cacheConfig = ConfigurationBuilder.BuildConfiguration(settings =>
{
settings.WithUpdateMode(CacheUpdateMode.Up)
.WithSystemRuntimeCacheHandle("inProcessCache")//内存缓存Handle
.WithExpiration(ExpirationMode.Sliding, TimeSpan.FromMinutes(60));
settings.WithJsonSerializer();
settings.WithRedisBackplane("redisConnection");
settings.WithRedisCacheHandle("redisConnection");

});

container.RegisterType(
typeof(ICacheManager<>),
new ContainerControlledLifetimeManager(),
new InjectionFactory(
(c, t, n) => CacheFactory.FromConfiguration(t.GetGenericArguments()[0], cacheConfig)));

}

5,Controller控制层
public class TestController : ApiController
{
[Dependency]
protected ICacheManager<Todo> TodoCache
{
get;
set;
}

6,测试代码
// GET api/Test/5
public string Get(int id)
{
Todo value1 = new Todo();
value1.Title = "test1-"+id.ToString();
TodoCache.Add("test1-" + id.ToString(), value1);


7,查看redis
推荐工具 Another Redis Desktop Manager

 

标签:WebApi,ASP,settings,Framework,CacheManager,new,Net
From: https://www.cnblogs.com/luozhai714/p/17900743.html

相关文章

  • Asp.net core Net6.0 Webapi 项目如何优雅地使用内存缓存
    前言缓存是提升程序性能必不可少的方法,Asp.netcore支持多级缓存配置,主要有客户端缓存、服务器端缓存,内存缓存和分布式缓存等。其中客户端缓和服务器端缓存在使用上都有比较大的限制,而内存缓和分布式缓存则比较灵活。内存缓存就是一种把缓存数据放到应用程序内存中的机制。本......
  • 【论文阅读笔记】【OCR-文本识别】 SEED: Semantics Enhanced Encoder-Decoder Framew
    SEEDCVPR2020读论文思考的问题论文试图解决什么问题?写作背景是什么?问题:如何利用全局的语义信息提高文本识别模型对低质量文本的鲁棒性和识别效果?背景:以往的基于encoder-decoder的文本识别方法通常基于局部的视觉特征解码出文本,忽略了对单词显式的全局语义信息的......
  • 你知道如何修改ASP.NET Core默认端口吗?常用5种方法实例演示
    下面针对ASP.NETCore中修改默认端口的五种常用方法的详细示例,分别对应 appsettings.json 配置Kestrel的Endpoint、使用 UseUrls 方法、命令行参数方法、host.json 配置方法和使用Docker的方式。方法一:appsettings.json配置Kestrel的Endpoint在 appsettings.j......
  • .net formwork WebApi 跨域问题
    ASP.NETFormwork Api/ASP.NetCoreApi 做比较。有关 Global.asax、FilterConfig.cs和RouteConfig.cs等都被Program.cs和Startup.cs两个类取而代之.程序中把Program.cs作为Web应用程序的入口,程序启动的时候会调用Startup.cs类。Startup.cs作用就是,对项目......
  • 快速入门:使用 .NET Aspire 组件实现缓存
    前言云原生应用程序通常需要各种类型的可扩展缓存解决方案来提高性能。.NETAspire组件简化了连接到流行的缓存服务(例如Redis)的过程,今天小编就为大家简单介绍一下如何使用.NETAspire组件实现缓存。本文的内容概要:创建一个设置为使用.NETAspire的基本ASP.NETCore应......
  • .net6 webapi Swagger显示控制器为版本及接口注释
    1.安装Nuget包:Swashbuckle.AspNetCore2.使用Swagger中间件builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen(option=>{//要启用swagger版本控制要在api控制器或者方法上添加特性[ApiExplorerSettings(GroupName="版本号")] typ......
  • asp.net core 多文件分块同时上传组件
    分享一个可多个文件同时上传、断点续传,并实时反馈上传进度的Asp.Netcore组件。服务器端引用nuget包:JMS.FileUploader.AspNetCore然后启用上传组件:app.UseAuthorization();app.MapControllers();//启用上传组件,并限制单个文件......
  • InstallShield 集成.net Framework的安装包制作
    .netFramework出现之前,一直用innosetup,setupfactory等工具打包,后来,.netFramework1.0/1.1同行的vs2002/2003中有了安装项目,制作也很方便,另外,微软也提供了一个强大的组件:MicrosoftVisualStudio.NET2003引导程序插件。通过MicrosoftVisualStudio.NET2003引导程序插件......
  • 【Lidar】Laspy库介绍+基础函数(读取、可视化、保存、旋转、筛选、创建点云数据)
    ​1Laspy库介绍        laspy是一个Python库,主要用于读取、修改和创建LAS点云文件。该库兼容Python2.6+和3.5+,并且可以处理LAS版本1.0-1.3的文件。        在laspy库中,可以使用命令行工具进行文件操作,如格式转换和验证,以及比较LAS文件。此外,laspy还支持分块......
  • 分享一个 asp.net core 多文件分块同时上传的组件
    分享一个可多个文件同时上传、断点续传,并实时反馈上传进度的Asp.Netcore组件。服务器端引用nuget包:JMS.FileUploader.AspNetCore然后启用上传组件:app.UseAuthorization();app.MapControllers();//启用上传组件,并限制单个文件最......