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. Count属性(行数 @)

    在PS2.0中,如果返回值为空,则count也会返回空(vm.txt内容为空),如下: (gc d:\vm.txt).count 如果加上@的话,会返回0 @(gc d:\vm.txt).count ...

  2. 学习笔记:暴力破解WIFI小软件

    小弟 自己的学习笔记,做练习的 ,缺陷还很多,做到无法解决速度问题就不想做下去了,如果要看的话 主要是思路问题,获取句柄,控制句柄而已,代码比较简单.大神勿喷啊 破解DEMO源码:http://dow ...

  3. HDU 4849-Wow! Such City!(最短路)

    Wow! Such City! Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Other ...

  4. kontalk

    Site: http://kontalk.org/ Code: https://github.com/kontalk/androidclient

  5. Redis学习手册(开篇)

    一.简介: 在过去的几年中,NoSQL数据库一度成为高并发.海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机.然而在众多产品中能够脱颖而出的却屈指可数,如Redis.MongoDB ...

  6. 标准I/O的替代软件

    标准I/O并不完善. 标准I/O库的一个不足之处是效率不高,这与它需要复制的数据量有关.当使用每次一行函数fgets和fputs时,通常需要复制两次数据:一次是在内核和标准I/O缓冲之间(当调用rea ...

  7. bootstrap系列整理

    去年的九月份做第一版文档站时, 就开始尝试使用bootstrap ,由于当时对node 还一知半解,大部分精力放在nodejs上,bootstrap只是拿来就用,起步文档都没看: 当别人提到 Norm ...

  8. Environment variable:"PATH" 状态 失败

    问题截图: 问题内容: 未能满足某些最低安装要求.请复查并修复下表中列出的问题,然后重新检查系统. Checks    Environment Variable: "PATH"  ...

  9. 20151210 Jquery 学习笔记 AJAX 进阶

    一.加载请求 在 Ajax 异步发送请求时,遇到网速较慢的情况,就会出现请求时间较长的问题.而超 过一定时间的请求,用户就会变得不再耐烦而关闭页面.而如果在请求期间能给用户一些提 示,比如:正在努力加 ...

  10. OC 消息传递机制

    消息传递(message passing)的概念是Smalltalk语言的核心原则之一,有时Smalltalk和Objective-C被称为面向消息的语言,通常“消息”一词的含义和“方法”是相同的. ...