【我的理解】

Cache,是内置的对象集合。是全局的,类似于static Arraylist.它是线程安全的,添加或修改Cache中的项目时,不需要锁定或者解除Cache。

添加 Cache[Key]=object  or Cache.Insert

移除 Cache.Remove(key)

【我是怎么用的】

首先理解缓存策略。可调过期策略 和 绝对过期策略。注意,两则不能同时使用

使用可调过期策略,需要将absoluteExpiration=DateTime.MaxValue ,TimeSpan .FromMinutes()设置项目只有在10分钟内不被使用才会被移除
Cache.Insert("data", "", null , DateTime.MaxValue, TimeSpan.FromMinutes()); 绝对策略,如天气报告,将信息保存60分钟
Cache.Insert("data", "", null , DateTime.Now.AddMinutes(), TimeSpan.Zero);

缓存依赖。

即一个缓存的失效依赖另外一个object。这里的object可以指另外一个缓存,或者一个文件,或者....

类:CacheDependency 命名空间 System.Web.Caching.CacheDependency
依赖于其它缓存项目
 
System.Web.Caching.CacheDependency cacheDependency = new System.Web.Caching.CacheDependency (null, new string [] { "time" });
Cache.Insert( "number", ++num, cacheDependency);
 
依赖于文件或文件夹
 
System.Web.Caching. CacheDependency cacheDependency = new System.Web.Caching.CacheDependency ( "test.xml");
当test.xml文件删除、更新时自动从缓存中移除
 

System.Web.Caching.CacheDependency cacheDependency = new System.Web.Caching.CacheDependency(null, new string[] { "time" });
Cache.Insert("test", "123", cacheDependency);

 
移除项目回调
 Cache.Insert("test", "123", null , DateTime.Now.AddSeconds(10), TimeSpan.Zero, new CacheItemUpdateCallback(Test));
 
 
 private void Test(string key, CacheItemUpdateReason reason, out object expensiveObject, out CacheDependency dependency, out DateTime absoluteExpiration, out TimeSpan slidingExpiration)
    {
 
    }
 

【源码下载】

我用ASP.NET缓存之数据缓存的更多相关文章

  1. thinkphp的静态缓存,数据缓存,快速缓存,查询缓存

    // 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON'     =>    true, // 开启静态缓存 'HTM ...

  2. asp.net mvc json数据缓存

    一些虚拟主机资源给的少, 如果直接用框架缓存, 估计内存就爆了吧, 如果不用缓存, 虚拟主机自带的数据库也是限制资源的, 访问多了就直接给timeout了, 用json文件形式缓存查询出来的数据, 虽 ...

  3. asp.net 页面缓存、数据缓存

    页面缓存,webform框架的aspx页面,服务器引擎生成的页面可以被缓存.

  4. 文件缓存tmpfs + 数据缓存SSDB(一)

    一.文件缓存tmpfs 1.特性 1) 基于内存的文件系统,RAW+SWAP,虚拟内存 2) tmpfs使用虚拟内存,/dev/shm/使用共享内存 3) 访问速度快,可以动态调整大小 4) 没有持久 ...

  5. YII缓存之数据缓存

    1.开启缓存组件 2. ================ 二 先在配置文件components数组中加上: 'cache'=>array( 'class'=>'CFileCache'), ...

  6. 我用ASP.NET缓存之SQL数据缓存依赖(SqlCacheDependency)

    [名词解释] 缓存(Cache)依赖,大白话解释就是缓存是否更新依赖于其它Object.那么SqlCacheDependency指的就是Cache的数据更新依赖于SQL Server数据库表的变化(  ...

  7. jQuery源代码学习之六——jQuery数据缓存Data

    一.jQuery数据缓存基本原理 jQuery数据缓存就两个全局Data对象,data_user以及data_priv; 这两个对象分别用于缓存用户自定义数据和内部数据: 以data_user为例,所 ...

  8. 数据缓存iOS

    有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造成以下问题 (1)用户流量的浪费(2)程序响应速度不够快 解决上 ...

  9. 玩转iOS开发 - 数据缓存

    Why Cache 有时候.对同一个URL请求多次,返回的数据可能都是一样的,比方server上的某张图片.不管下载多少次,返回的数据都是一样的. 上面的情况会造成下面问题 (1)用户流量的浪费 (2 ...

随机推荐

  1. sql表与表之间的数据操作

    --把一张表的内容更新到另一张表 update 表1 set 表1.Store=t2.Name from 表2 t2 where 表1.id=t2.id --备份一张表 create table ta ...

  2. Easyui datagrid绑定数据,新增,修改,删除写法

    @{ ViewBag.Title = "xw_xsfl"; } <script type="text/javascript"> var editIn ...

  3. 在QT中用git做版本管理时遇到的一些问题

    1. 安装git sudo apt-get install git 2. 安装gitk sudo apt-get install gitk 要提交代码,点击  工具->git->local ...

  4. pageadmin CMS网站制作教程:模板中的站点数据调用

    pageadmin CMS网站建设教程:模板中的站点数据调用 1.获取当前站点Id,返回int数字 Html.CurrentSiteId() 2.获取当前站点url地址,返回string字符串 Htm ...

  5. 【转】Bri's改装笔记

    网上关于三菱蓝瑟的改装方案的文章不少,但在以不换发动机为前提的理性改装确是这两篇和东南汽车俱乐部科仔的那篇<4G18的低成本NA玩法>最具参考价值. 小排量NA车的乐趣不在于跟人比直线加速 ...

  6. firebug中html显示为灰色的原因总结

    1.被设置了display:none. 2.长.宽都为0.

  7. Flask从入门到精通之自定义错误界面

    如果你在浏览器的地址栏中输入了不可用的路由,那么会显示一个状态码为404 的错误页面.现在这个错误页面太简陋.平庸,而且样式和使用了Bootstrap 的页面不一致. 像常规路由一样,Flask 允许 ...

  8. [bug]小米部分机型(5x、mix2)中,文字/背景闪现然后消失

    2/9更新 后来遇到float 元素也这样,改成flex布局就没问题.不知道具体原因. 描述: 使用vue 2.4开发HTML5时,遇到在小米部分机型(5x.mix2)中,文字/文字背景闪现然后消失. ...

  9. Memcached 查看列出所有key方法

    Memcached没有一个比较简单的方法可以直接象Redis那样keys *列出所有的Session key,并根据key get对应的session内容,但是还是可以查看的 memcached 查看 ...

  10. SQL一些问题

    什么是索引: 一般说法:索引是与表关联的磁盘上结构,可以加快从表中检索行的速度.索引包含由表中的一列或多列生成的键.这些键存储在一个结构中,使 SQL Server 可以快速有效地查找与键值关联的行. ...