缓存 Cache
Controllers层
public class HomeController : Controller
{
//
// GET: /Home/
// [OutputCache(Duration = 10, Location = OutputCacheLocation.ServerAndClient)]
public ActionResult Index()
{
// HttpRuntime.Cache.Remove("Ecache");//清空缓存
if (HttpRuntime.Cache["Ecache"] == null)
{
ViewData.Model = DataClass.getDataList();
ViewData["aa"] = "没有缓存从库写入!";
}
else
{
ViewData.Model = HttpRuntime.Cache["Ecache"];
ViewData["aa"] = "读缓存数据!";
}
//NoSlidingExpiration可以设置相对的过期时间,如果缓存在NoSlidingExpiration设定的时间内没有被访问,
//缓存过期一定时间内没有被访问,缓存过期,如果在一定时间内都有访问,缓存将不会过期。如在30分钟有访问Cache就不过期:
HttpRuntime.Cache.Insert("Ecache", ViewData.Model, null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration);
//absoluteExpiration所插入对象将过期并被从缓存中移除的时间。
return View();
}
public ActionResult Default()
{
if (BLLClass.JudgeCache())
{
ViewData.Model = DataClass.getDataList();//从数据库读
ViewData["aa"] = "AA没有缓存从库写入!";
}
else
{
ViewData.Model = BLLClass.ReadCache();//从缓存里读
ViewData["aa"] = "AA读缓存数据!";
}
BLLClass.CacheInsert(ViewData.Model,30);
return View();
}
}
}
数据层
public class DataClass
{
public static List<User_Info> getDataList()
{
List<User_Info> list = new List<User_Info>();
User_Info user;
for (int i = 1; i < 20; i++)
{
user = new User_Info();
user.ID = i;
user.Name = "User" + i.ToString();
list.Add(user);
}
return list;
}
}
BLL层,把这个写到BLL层里了。就是作一个参考
public class BLLClass
{
/// <summary>
/// Cache:创建缓存
/// </summary>
/// <param name="data"></param>
/// <param name="time">过期时间</param>
public static void CacheInsert(object data,int time)
{
HttpContext.Current.Cache.Insert("Acache", data, null, DateTime.Now.AddMinutes(time), Cache.NoSlidingExpiration);
}
/// <summary>
/// 判断缓存
/// </summary>
/// <returns></returns>
public static bool JudgeCache()
{
if (HttpRuntime.Cache["Acache"] == null)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 读取缓存
/// </summary>
/// <returns></returns>
public static object ReadCache()
{
return HttpRuntime.Cache["Acache"];
}
}
缓存 Cache的更多相关文章
- POCO库——Foundation组件之缓存Cache
缓存Cache:内部提供多种缓存Cache机制,并对不同机制的管理缓存策略不同实现: ValidArgs.h :ValidArgs有效键参数类,模板参数实现,_key:键,_isValid:是否有效, ...
- [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能
[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种. ...
- [.net 面向对象程序设计进阶] (14) 缓存(Cache) (一) 认识缓存技术
[.net 面向对象程序设计进阶] (14) 缓存(Cache)(一) 认识缓存技术 本节导读: 缓存(Cache)是一种用空间换时间的技术,在.NET程序设计中合理利用,可以极大的提高程序的运行效率 ...
- .Net自带缓存Cache的使用
对于数据比较大,经常要从数据库拿出来用的,可以考虑使用.Net自带的缓存Cache,简单好用: //向内存中插入一个缓存 System.Web.HttpRuntime.Cache.Insert(&qu ...
- 缓存Cache
转载自 博客futan 这篇文章将全面介绍有关 缓存 ( 互动百科 | 维基百科 )cache以及利用PHP写缓存caching的技术. 什么是缓存Cache? 为什么人们要使用它? 缓存 Cach ...
- Java 中常用缓存Cache机制的实现
所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 所谓缓存,就是将程序或系统经常要调用的对象存在内存中 ...
- Java 中常用缓存Cache机制的实现《二》
所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. AD: Cache 所谓缓存,就是将程序或系统经常要 ...
- YII缓存Cache
缓存Cache 定义:将数据暂时存放在一个存储速度更快的介质上,下次读取数据时就可以从这个介质上来读取数据 介质:内存.文件.数据库(优化好的数据库) Yii缓存的分类:(framework/cach ...
- ASP.NET缓存 Cache
缓存介绍 如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差,而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能,这样无论多 ...
- ASP.NET状缓存Cache的应用-提高数据库读取速度
原文:ASP.NET状缓存Cache的应用-提高数据库读取速度 一. Cache概述 既然缓存中的数据其实是来自数据库的,那么缓存中的数据如何和数据库进行同步呢?一般来说,缓存中应该存放改 ...
随机推荐
- HDU5100Chessboard(数论)
HDU5100Chessboard(数论) 题目链接 题目大意:用k∗1的瓷砖区铺n∗n的矩形,问能铺上的最大的面积. 解题思路:这题没有直接得出结论:l = n%k, ans = max[(n^2 ...
- WPF 多线程
写法3 private void button1_Click(object sender, RoutedEventArgs e) { System. ...
- linux ssh 中在window 传文件 下载文件 工具
centos 安装工具 yum install lrzsz
- 教你用笔记本破解无线路由器password
近期非常多人问我怎么破解WiFipassword…看来大家都对免费的东西比較有兴趣.要么也可能是我太招摇了…囧… 好吧,我就写篇小小的教程,看完后,你应该可以破解大部分无线路由器password了,写 ...
- Linux 下mysql忘记root密码解决方法
忘记root密码怎么办:1.关闭数据库2.使用-->mysqld_safe --skip-grant-tables &--<启动数据库3.使用空密码进入数据库(mysql命令后直接 ...
- 转:FORM:客制化Form的菜单栏和右鍵菜單
Oracle EBS还允许客制化Form的菜单栏. 用户最多可以定义45个form-level的trigger,名称必须为SPECIALn, 其中SPECIAL1 to SPECIAL15属于Tool ...
- HDU-1031(水题)
Design T-Shirt Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) P ...
- jquery - ul li click 无响应
搞了很久, 发现对应jquery来说, 动态产生的ul li(其实不只是这个, 还有 table td等), 直接使用 $("#ul_div>li").click(funct ...
- ASP.NET MVC5总结(一)@HTML和对应的HTML
HtmlHelper用来在视图中呈现 HTML 控件,主要分为以下几类: 1.ActionLink - 链接到操作方法 @Html.ActionLink("这是一个连接", &qu ...
- Ext.Net学习笔记09:Ext.Net Store的用法
使用Handler处理分页 首先来创建一般处理程序,我命名为StoreHandler.ashx,然后它的处理过程代码如下: public void ProcessRequest(HttpContext ...