作家
登录

关于ASP.NET内存缓存你需要知道的10点

作者: 来源: 2017-06-23 09:03:19 阅读 我要评论

timestamp = cache.Get<string>("timestamp"); 
  •  
  •   return View("Show",timestamp); 
  •  
  •  
  • 上述代码大年夜 HomeController 的别的一个action(Show)那边获取到了一个缓存的数据项。Get() 办法会指定命据项的类型以及它的键名。如不雅该数据项存在的话,就会被返回并且被赋值给 timestamp 这个字符串变量。然后这个 timestamp 的值就会被传递给 Show 视图。

    Show 视图只是简单地输出了 timestamp 的值,如下所示:

    1. <h1>TimeStamp : @Model</h1> 
    2.  
    3.  
    4. <h2>@Html.ActionLink("Go back""Index""Home")</h2>  

    为了对今朝为止你所写的代码进行一下测试,请运行应用法度榜样。起首将浏览器导航至 /Home/Index ,如许 timestamp 键就会被赋值。然后导航至 /Home/Show 并查看 timestamp 值是否会输出。下图所示是 Show() 这个 action 运行起来的一个例子。

    8. 当缓存项会被移除时,你可以连接回调

    5. 你可以应用 TryGet() 来检查缓存中是否存在特定的键值

    如不雅你不雅察前面的示例,会发明每次你导航至 /Home/Index 的时刻, 都邑有一个新的 timestamp 被赋值给了缓存项。这是因为我们并没有对此进行检查,规定只有在数据项不存在的时刻才赋值。很多时刻你都邑想要如许做的。这里有两种办法可以在 Index() 这个 action 琅绫擎来做如许的检查。我们把两种办法都鄙人面列了出来。

    1. //first way 
    2.  
    3. if (string.IsNullOrEmpty 
    4.  
    5. (cache.Get<string>("timestamp"))) 
    6.  
    7.  
    8.   cache.Set<string>("timestamp", DateTime.Now.ToString()); 
    9.  
    10.  
    11.  
    12. //second way 
    13.  
    14. if (!cache.TryGetValue<string> 
    15.  
    16. ("timestamp"out string timestamp)) 
    17.  
    18.  
    19.     cache.Set<string>("timestamp", DateTime.Now.ToString()); 
    20.  
    21.  

    在进一步浏览之前,你先创建一个基于 Web 应用法度榜样项目模板的新的 ASP.NET Core 应用法度榜样。

    2. 内存缓存应用依附注仁攀来注入缓存对象

    第一种办法应用了你起初用过的同一个 Get() 办法,这一次它被拿来跟 if 块一路用。如不雅 Get() 不克不及在缓存中找到指定的数据项,IsNullOrEmpty() 就会返回 true。而只有这时刻 Set() 才会被调用,一次来添加数据项。

    第二种办法加倍优雅一点。它应用 TryGet() 办法来获取一个数据项。TryGet() 办法会返回一个布尔值来指明数据项有没有被找到。实际的数据项可以应用一个输出参数拉掏出来。如不雅 TryGet() 返回false,Set() 就会被用来添加数据。

    6. 如不雅不存在的话,可以应用 GetOrCreate() 来添加一项

    有时你须要大年夜缓存中检索现有项。如不雅该项目不存在,则欲望添加该项。这两个义务 - 如不雅它存在获取值,不然创建之 - 可以应用 GetOrCreate() 办法来实现。修改后的 Show() 办法展示了若何实现的。

    1. public IActionResult Show() 

        推荐阅读

        Python MySQL数据库连接池组件

      引言pymysqlpool 是数据库对象包中新成员,目标是能供给一个实用的数据库连接池中心件,大年夜而避免在应用中频繁地创建和释放数据库连接资本。功能 连接池本身是线程安然的,可在多线>>>详细阅读


      本文标题:关于ASP.NET内存缓存你需要知道的10点

      地址:http://www.17bianji.com/lsqh/35873.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)