cache缓存

类:CacheDependency,cache

msdn解释:

在存储于 ASP.NET 应用程序的 System.Web.Caching.Cache 对象中的项与文件、缓存键、文件或缓存键的数组或另一个 System.Web.Caching.CacheDependency
对象之间建立依附性关系。 System.Web.Caching.CacheDependency 类监视依附性关系,以便在任何这些对象更改时,该缓存项都会自动移除。

一般有应用于客户端缓存,应用服务器缓存,应用代理服务器缓存(集群)

例子:

 // 创立缓存1
            Cache["key1"] = "Value 1";
            // 创立缓存3
            Cache["key3"] = "Value 3";
            // 这个是要关联缓存的数组,可以放一个缓存的KEY,也可以是多个
            String[] dependencyKey = new String[2];
            dependencyKey[0] = "key1";
            dependencyKey[1] = "key3";
            //创建关联对象
            CacheDependency dependency = new CacheDependency(null, dependencyKey);
            //这是要关联的缓存2,这里的第三个参数意思是设置和缓存2关联的缓存,当缓存1或者缓存2出现任何更改的时候,缓存2的数据都会被清除
            Cache.Insert("key2", "Value 2", dependency);

 思想:

1 先读取缓存,如果没有再次读取数据库

2 可以根据缓存数据的重要性设置缓存的失效时间,如果内存不够时可以设置缓存的优先级,默认为 CacheItemPriority.normal

当要加入的缓存项已经在Cache中存在时,Insert将会覆盖原有的缓存项目,而Add则不会修改原有缓存项。

4 如果要频繁写入数据库数据,可以考虑定时或者一定次数的数据操作后一起写入数据库,在这期间可以考虑缓存存储数据

5 由于ASP.NET Cache不能提供对外访问能力,因此,它不可能取代以memcached为代表的分布式缓存技术, 但它由于是不需要跨进程访问,效率也比分布式缓存的速度更快。如果将ASP.NET Cache设计成【一级缓存】, 分布式缓存设计成【二级缓存】,就像CPU的缓存那样,那么将能同时利用二者的所有的优点,实现更完美的功能以及速度。

6 缓存的延迟加载可以考虑在设置缓存时间失效后调用它的回掉函数去进行处理 (缓存的移除通知)

posted @ 2016-04-13 11:23  洛晨随风  阅读(281)  评论(0编辑  收藏  举报