.net mvc中的缓存

本文详细介绍了ASP.NET MVC中的缓存技术,包括缓存的概念、优缺点及应用场景。阐述了应用程序缓存和输出缓存的具体实现方法,并提供了代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   今天我们聊一聊在.net mvc中的缓存是什么以及如何来实现缓存?

  1.首先我们看一看什么缓存?

    缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。这里是指在电脑中的缓存,那么我们在看看在程序的中的缓存的是什么定义?

   在程序中的缓存指的就是:客户端在第一次向服务器请求的数据的时候,服务器会根据客户端的请求来响应客户端所需要的数据,并同时会在服务器中的一块内存中存储一份相同的相同的数据,以方便于客户端下次再次请求同一个数据的时候,服务器会直接从缓存中获取数据,而不必再次向数据库端来进行索要数据。从而大大提高了应用程序的的运行效率。

  客户端第一次向服务器索要数据如图所示:

第二次请求数据图:

                

由以上两图我们可以很清楚的看出缓存的一个流程图。

3.使用缓存的优点和缺点?

01.使用缓存机制的优点:大大的提高的程序的运行效率。

02.使用缓存机制的缺点:有一些应用程序在并不是很适合使用缓存机制:例如股票,天气等等需要时时更新的程序,还有就是对于缓存数据的释放时间,如果一个的缓存数据过多,那么就会大大增加服务器的承受的压力。从而很有可能导致服务器的崩溃。

通过两个我们发现,在使用缓存的时候,需要我们程序员根据相应的应用程序,来处理相应的缓存数据。

   下面我们来看看在.net mvc中的缓存技术:

   在.net mvc有相应的两种缓存技术:1.应用程序的缓存。2.输出缓存。

          应用程序的缓存:通过.net  提供的CaChe对象来进行的数据的缓存,Cache的作用域来相当于Application对象类似。

        

 //设置常量
 const string MyCaChe = "LonginUser";

        //设置缓存
        public List<User> UserList 
        {
            get 
            {
                //根据key查看缓存中是否存在该缓存值
                List<User> list=(List<User>)HttpContext.Cache[MyCaChe];
                if (list==null)
                    {
                 //不存在数据的时候,从数据库读取数据
                        list=db.Users.ToList();
//使用最简单的方法来设置缓存
                    HttpContext.Cache[MyCaChe]=list;
                //使用Insert方法来设置缓存数据,设置到缓存对象中,第一个参数是缓存的Key值,第二个参数为实际值,第三个参数是是否依赖缓存,第四个参数为设置过期时间
//在这里我使用的是20秒后过期,第五个参数为设置缓存的过期方式,是滑动过去,还是绝对过期。
HttpContext.Cache.Insert(MyCaChe,list,null,DateTime.UtcNow.AddSeconds(20),System.Web.Caching.Cache.NoSlidingExpiration);
        //当然我们也可以移除缓存
            HttpContext.Cache.Romve(MyCaChe);//这里的参数为指定的Cache的key值
//不使用以上的方法也是可以的,.net机制有自动删除的功能。
} 
return list;
}

2.输出缓存

该缓存使用于将整个页面都进行缓存的时候使用只需要在所需要缓存的页面上打上[OutPutCache]的特性标签就可以了。以下是[OutPutCache]特性中可以加上的一些参数

  

例如我们可以为首页来进行输出缓存

  

//设置的过去时间为5秒
[OutputCache(Duration = 5]
public ActionResult Index()
{
    return View();
}

在这里我们需要明确一点,在输出缓存中并没有滑动过期,只有绝对过期。

 

转载于:https://www.cnblogs.com/chenyi-yy/p/4482295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值