企业库的缓存模块允许开发者在应用中包含本地缓存。它支持内存缓存,内存中缓存的数据,可以用数据库或者其他分离的存储作为后端数据存储。缓存模块可以不经修改而直接使用,它提供了获取数据、添加数据到缓存、清空缓存中的数据所需的全部方法。同样支持可配置的缓存过期和清除策略。
在构建企业级分布式应用的时候,架构师和开发者将会面对许多挑战。缓存可以帮助他们克服下面的一些挑战:
在缓存模块将会讲述下面的主题
一、缓存模块简介
将通过下面的一些话题,帮助你决定缓存模块是否适合你的应用需求。
除了上面的话题,还将介绍下面的一些内容
1.1常用的解决方案
在下列情况,很适合使用缓存。
你可以在下面的任何一种应用中使用缓存
你应该在单个的应用程序域中部署缓存模块。每个应用程序域有一个或者多个缓存,有或者没有对应的后端存储。缓存的数据不能在不同的应用程序域中共享。
缓存模块可以优化性能,并且是线程安全和异常安全的。你可以加入自定义的过期策略和自定义的后端存储。
1.2代码示例
下面的代码演示了添加数据到缓存中,从缓存中获取数据。向缓存中添加Goods对象,优先级是2,如果过期不更新缓存,过期时间为最后一次访问之后的5分钟。
public class Goods { public string ID{get;set;} public string Name{get;set;} public int Price{get;set;} } public class CachingTest { public static void Test() { ICacheManager goodsCache=CacheFactory.GetCacheManager(); string id="001"; string name="seed"; int price=100; Goods goods=new Goods(); goods.ID =id; goods .Name=name; goods .Price=price ; goodsCache .Add(goods .ID,goods ,CacheItemPriority .Normal , null,new SlidingTime (TimeSpan.FromMinutes (5))); //Retrieve the item goods =(Goods )goodsCache .GetData (id ); } }
1.3使用缓存的突出点
企业库的缓存模块包含下面的功能:
1.4决定什么时候使用缓存
缓存模块适用于大多数的需要缓存的情况,
1.5可替代的缓存模块
在一些情况,需要另外一个缓存解决方案,例如存在多个应用,缓存和应用不在同一个系统之上。你不能跨web farm同步缓存数据。但是,当你需要改变模块基础行为的时候,你可以用自定义类代替CacheManager。更多的信息,请关注后面的缓存模块的扩展开发。
ASP.NET Cache
.NET框架的System.Web命名空间下面包含了一个缓存,在ASP.NET应用中可以通过System.Web.HTTPContext.Cache使用缓存,这个缓存是给ASP.NET应用开发的。当然了,也可以在ASP.NET以外使用缓存,通过System.Web.HTTPRuntime.Cache来访问。ASP.NET缓存要求安装System.Web程序集。在使用之前,开发者要验证在目标平台和系统上是否支持这个程序集。
1.6安全
尽管你可以在后端存储中加密缓存的数据,缓存模块却不支持加密内存中的数据。如果一个恶意的用户找到一个损害系统的办法,访问应用进程中的内存,便会访问到内存中缓存的数据。如果这对你的系统是一种威胁,就不要将敏感数据放入缓存,例如性用卡号和密码等。
未完待续。。。。。。。。。。。。。。。。。。。。。