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的更多相关文章

  1. POCO库——Foundation组件之缓存Cache

    缓存Cache:内部提供多种缓存Cache机制,并对不同机制的管理缓存策略不同实现: ValidArgs.h :ValidArgs有效键参数类,模板参数实现,_key:键,_isValid:是否有效, ...

  2. [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能

    [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种. ...

  3. [.net 面向对象程序设计进阶] (14) 缓存(Cache) (一) 认识缓存技术

    [.net 面向对象程序设计进阶] (14) 缓存(Cache)(一) 认识缓存技术 本节导读: 缓存(Cache)是一种用空间换时间的技术,在.NET程序设计中合理利用,可以极大的提高程序的运行效率 ...

  4. .Net自带缓存Cache的使用

    对于数据比较大,经常要从数据库拿出来用的,可以考虑使用.Net自带的缓存Cache,简单好用: //向内存中插入一个缓存 System.Web.HttpRuntime.Cache.Insert(&qu ...

  5. 缓存Cache

    转载自  博客futan 这篇文章将全面介绍有关 缓存 ( 互动百科 | 维基百科 )cache以及利用PHP写缓存caching的技术. 什么是缓存Cache? 为什么人们要使用它? 缓存 Cach ...

  6. Java 中常用缓存Cache机制的实现

    所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 所谓缓存,就是将程序或系统经常要调用的对象存在内存中 ...

  7. Java 中常用缓存Cache机制的实现《二》

    所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. AD: Cache 所谓缓存,就是将程序或系统经常要 ...

  8. YII缓存Cache

    缓存Cache 定义:将数据暂时存放在一个存储速度更快的介质上,下次读取数据时就可以从这个介质上来读取数据 介质:内存.文件.数据库(优化好的数据库) Yii缓存的分类:(framework/cach ...

  9. ASP.NET缓存 Cache

    缓存介绍 如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差,而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能,这样无论多 ...

  10. ASP.NET状缓存Cache的应用-提高数据库读取速度

    原文:ASP.NET状缓存Cache的应用-提高数据库读取速度 一. Cache概述       既然缓存中的数据其实是来自数据库的,那么缓存中的数据如何和数据库进行同步呢?一般来说,缓存中应该存放改 ...

随机推荐

  1. zend studio-字体大小设置

    在使用zend studio的过程中为了方便我们编码,很多时候需要设置编码的字体的大小,设置步骤如下: 选择[Windows]-[preference]-[general]-[appearance]- ...

  2. 同步窗体移动 FormMove

    方法2 unit Unit1;interfaceuses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,  Sy ...

  3. Redis学习手册(管线)

    一.请求应答协议和RTT: Redis是一种典型的基于C/S模型的TCP服务器.在客户端与服务器的通讯过程中,通常都是客户端率先发起请求,服务器在接收到请求后执行相应的任务,最后再将获取的数据或处理结 ...

  4. iphone4s 关于大于400M的视频无法拷贝的问题

    方法有二: 1.可以用win7等高版本的系统拷出 2.可以用Itools工具导出

  5. 制作win7+ubuntu +winPE+CDlinux多系统启动U盘

    制作前期准备工作 1.需要软件 grub4dos(http://sourceforge.net/projects/grub4dos/files/) UltraISO(http://cn.ezbsyst ...

  6. CDOJ-10(栈的应用)

    In Galgame We Trust Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Othe ...

  7. Sql面试常考题(持续添加)

    最近萌生换工作的念头,于是上网下载了一些公司的面试题,重新看了面试题中的Sql部分,这些查询题有时候只是兜一个弯角来考,对于给EF惯坏的孩子来说还是有点难度的(给面试官鄙视了几下的结果),所以列出最近 ...

  8. T-SQL通过触发器创建级联更新·级联删除

    create trigger t_table_a on table_a for update,dalete begin if exists(select 1 from inserted) update ...

  9. [转] c# 数据类型占用的字节数

    http://www.cnblogs.com/laozuan/archive/2012/04/24/2467888.html

  10. SQL Server调优系列基础篇 - 并行运算总结(二)

    前言 上一篇文章我们介绍了查看查询计划的并行运行方式. 本篇我们接着分析SQL Server的并行运算. 闲言少叙,直接进入本篇的正题. 技术准备 同前几篇一样,基于SQL Server2008R2版 ...