SharpCached小规模.Net缓存源码(VS2008项目)

已经更新为0.6版本 详见:

http://www.cnblogs.com/birdshover/archive/2008/07/29/1256014.html

 

SharpCached是用Remoting实现的IIS外缓存服务。相当于是MemCached的C#实现,不过是个迷你版的。因为有很多功能没有实现。


毕竟MemCached是C版的,不是每个人都会改C代码。相比而言改C#代码应该更加容易 :  )

项目介绍:

SharpCached项目是Windows Service服务,需要注册为系统服务,并且需要在App.config设置端口。

SharpCached.ICarrier项目是调用的接口。

SharpCachedClient项目是调用的实现。

TestSharpCached做了一个简单的Unit测试。


原理就是在WEB端通过引入SharpCachedClient,用Remoting对SharpCached服务请求数据。而SharpCached利用静态的散列数组存储要缓存的数据。

使用实例:
   SharpCatchedAPI api = new SharpCatchedAPI();
   api.Init();

   api.Set("t", DateTime.Now);

   if (api.Exits("t"))
    Console.WriteLine(api.Get("t").ToString());
   else
    Console.WriteLine("no found");

实际应用一:

string catchkey = "ccc";
SharpCatchedAPI m = new SharpCatchedAPI();
   m.Init();
   object o = m.Get(catchkey);
   if (o != null)
    return (DataTable)o;
//构造缓存数据 DataTable dt = .............
m.Set(catchkey ,dt);

实际运用二:

string catchkey = "ccc";
SharpCatchedAPI m = new SharpCatchedAPI();
   m.Init();
   if(m.Exits(catchkey ))
    return (DataTable) m.Get(catchkey);
//构造缓存数据 DataTable dt = .............
m.Set(catchkey ,dt);


没有实现分布式处理方法,也没有实现分级缓存。因此,适用缓存规模最大应该是1G左右(.Net的内存使用极限是内存的1/4,不太记得了,反正是有极限的)。

源码只作为参考,实际运用中产生问题,和我无关哈~~!,遇到问题一起探讨倒是可以的: )


SharpCached2.gif

posted @ 2008-03-29 01:41  Birdshover  阅读(3220)  评论(23编辑  收藏  举报