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,不太记得了,反正是有极限的)。
源码只作为参考,实际运用中产生问题,和我无关哈~~!,遇到问题一起探讨倒是可以的: )