快速业务通道

Discuz!NT 缓存设计简析

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-11
bsp;                        {
38                             return null;
39                         }
40                         else
41                         {
42                             return cacheObject;
43                         }
44      }
45         
46 }
47
 

         而死循环的问题主要是因为.net2下的缓存回调加载机制和程序本身的一个BUG造成的,目前
已修正, 大家请放心使用。


         目前已开发但还未使用的功能:
         1.一键多值:请看DNTCache代码段中的AddMultiObjects(string xpath,object[] objValue)
,获取时使用object[] RetrieveObjectList(string xpath)方法返回即可,这样就可以用一个xpath
来存取一组对象了。
        它的实现代码也相对简单,这里就不多说了,只把代码贴在此处。


public virtual bool AddMultiObjects(string xpath,object[] objValue)
{  
 lock(lockHelper)
 {
  //RemoveMultiObjects(xpath);
  if (xpath != null && xpath != "" && xpath.Length != 0 && objValue != null)
  {
  
   for (int i = 0; i < objValue.Length; i++)
   {
    AddObject(xpath + "/Multi/_" + i.ToString(),objValue[i]);
   }
 
   return true;
  }
  return false;
 }
}

         2.批量移除缓存
          它主要是利用XML有按路径层次存储的特点才这样做的,主要是去掉位于当前路径下的所有
子结点的缓存数据。
         它的函数声明如下:RemoveObject(string xpath, bool writeconfig)
         它的实现代码也相对简单,这里就不多说了, 只把代码贴在此处。


 1 public virtual void RemoveObject(string xpath, bool writeconfig)
 2 {
 3  lock(lockHelper)
 4  {
 5   try
 6   {
 7    if(writeconfig)
&

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号