AppFabric 使用
AppFabric的开发相对还是很简单的,最常见的方法无非是声明一个缓存接口,然后由各种缓存实现.
具体的使用除了msdn:
http://msdn.microsoft.com/zh-cn/library/hh334305
这是实例包的下载地址:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=19603
这篇博客介绍得不错.
使用微软分布式缓存服务Velocity(Windows Server AppFabric Caching Service)
缓存集群的配置,可以基于XML、SQL Server CE或者SQL Server数据库来进行存储,包括各个服务器以及所有的命名缓存、是否过期等配置,当我们使用Windows PowerShell管理工具进行配置时,将会修改该配置文件,如下代码所示:图中共有三个命名缓存,其中在缓存Catalog中又分区为Sports和Arts。在Velocity中对于分区的操作提供了如下三个方法,可以用于创建分区,删除分区以及清空分区中所有的对象:同样在检索缓存数据时,仍然可以使用分区名进行检索。 使用标签在Velocity还允许对加入到缓存中的缓存项设置Tag,可以是一个或者多个,使用了Tag,就可以从多个方面对缓存项进行描述,这样在检索数据时,就可以根据Tag来一次检索多个缓存项。为缓存项设置Tag,如下代码所示:Cache cache = GetCurrentCache();string regionName = "Customers";Customer customer1 = new Customer(){ ID = "C20081117004", FirstName = "Terry", LastName = "Lee", Age = 25, Email = "lhj_cauc[#AT#]163.com"};Customer customer2 = new Customer(){ ID = "C20081117005", FirstName = "Terry", LastName = "Lee", Age = 25, Email = "lhj_cauc[#AT#]163.com"};Tag tag1 = new Tag("Beijing");Tag tag2 = new Tag("Tianjin");cache.Add(regionName, customer1.ID, customer1, new Tag[] { tag1, tag2 });cache.Add(regionName, customer2.ID, customer2, new Tag[] { tag2 });这样就可以对设置了Tag的缓存项进行检索,根据实际需求选择使用如下三个方法之一:
GetAllMatchingTags(string region, Tag[] tags)GetAnyMatchingTag(string region, Tag[] tags)GetByTag(string region, Tag tag)第一个检索匹配所有Tag的数据,第二个检索匹配所有Tag中的任意一个即可,最后只使用一个Tag,如下代码所示:
string regionName = "Customers";Tag[] tags = new Tag[] { new Tag("Beijing"), new Tag("Tianjin")};List<KeyValuePair<string, object>> result = cache.GetAllMatchingTags(regionName, tags);使用Tag功能对于检索缓存项提供了极大的灵活性,对于任何一个数据,都可以使用多个Tag从很多方面去描述它。 ASP.NET SessionState提供者Velocity还提供了对于ASP.NET SessionState提供者的支持,可以通过配置把Session信息缓存到缓存集群中,添加Velocity配置区:
<section name="dcacheClient" type="System.Data.Caching.DCacheSection, CacheBaseLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>配置缓存客户端信息:
<dcacheClient> <localCache isEnabled="true" sync="TTLBased" ttlValue="300" /> <hosts> <host name="localhost" cachePort="22233" cacheHostName="DistributedCacheService"/> </hosts></dcacheClient>配置SessionState信息:
<sessionState mode="Custom" customProvider="Velocity"> <providers> <add name="Velocity" type="System.Data.Caching.SessionStoreProvider,ClientLibrary" cacheName="default"/> </providers></sessionState>需要指定使用哪个命名缓存,但是该功能似乎到目前还存在问题,无法测试通过L 总结本文简单介绍了Velocity的配置模型,以及如何缓存复杂数据类型,对命名缓存分区,为缓存项设置Tag,以及对于ASP.NET SessionState的支持,希望对大家有用。
本文出自 “TerryLee技术专栏” 博客,请务必保留此出处http://terrylee.blog.51cto.com/342737/151964