读书人

网站架构之缓存施用(2)实现篇

发布时间: 2012-12-21 12:03:49 作者: rapoo

网站架构之缓存应用(2)实现篇

上一篇我主要总结了网站缓存中的一些基本概念,以及我对于网站架构缓存应用的架构实现思路,这篇主要分享下如何利用微软企业库来实现一二级缓存的缓存服务。
???
??? 为了能够有效的管理缓存,需要对使用缓存方法上做一些规范,即要想使用缓存组件提供的服务,需要在指定的配置文件中按照一定的规则来配置缓存条目,不允许在配置之处使用缓存。下面先展示下一条Cache条目的配置:

网站架构之缓存施用(2)实现篇网站架构之缓存施用(2)实现篇网站架构之缓存施用(2)实现篇网站架构之缓存施用(2)实现篇网站架构之缓存施用(2)实现篇代码?internal?isRoc.Common.Cache.CacheProvider.IWebCacheProvider?GetServiceClient(uint?hash)
????????{
????????????//Quick?return?if?we?only?have?one?host.
????????????if?(clientArray.Length?==?1)
????????????{
????????????????return?clientArray[0];
????????????}

????????????//New?"ketama"?host?selection.
????????????int?i?=?Array.BinarySearch(hostKeysArray,?hash);

????????????//If?not?exact?match...
????????????if?(i?<?0)
????????????{
????????????????//Get?the?index?of?the?first?item?bigger?than?the?one?searched?for.
????????????????i?=?~i;

????????????????//If?i?is?bigger?than?the?last?index,?it?was?bigger?than?the?last?item?=?use?the?first?item.
????????????????if?(i?>=?hostKeysArray.Length)
????????????????{
????????????????????i?=?0;
????????????????}
????????????}
????????????return?hostDictionary[hostKeysArray[i]];
????????}

?

????????
??????? 总结:本文简单的介绍了如何利用微软企业库来实现具有两级缓存的缓存组件,上篇我提到过,实现一级缓存也可以采用memcached,采用memcached可以不用自己开发分布式客户端,目前有两个成熟的解决方案:1:Memcached.ClientLibrary2:EnyimMemcached。下篇我来介绍一级缓存如何通过memcached实现,以及如何让组件在一级缓存上即支持企业库也支持memcached。

读书人网 >编程

热点推荐