快速构建大数据缓存

场景:

系统运行于正式环境后,发现时常发生OOMOutOfMemory),通过Windbg dump了几个内存后发现很多缓存对象无法回收【分析过程另起新篇叙述】,于是想到如何处理缓存?

方案:

由于系统中的缓存都是采用Hashtable直接建立key, value来缓存对象,属于Strong Handle类型,当然第一反应就是建立WeakReference,所以就按照此思路重新构建了一下啊缓存

思路:

快速构建大数据缓存

缓存基类BigCacheItemWeakReference为基础,其他类都是实现各自不同场景下的缓存

类名

用途

BigFastCacheItem

大数据快速缓存,减少创建对象时等待时间

FSCacheItem

文件缓存,大对象无法缓存在内存中时,可以先以文件缓存,需要时,再重新取回数据

LightCacheItem

轻量级缓存:对象可以很容易的创建时,建议采用此类

思想讲玩了,直接看代码吧。

【说明】:代码中很多注释用GhostDoc自动生成,没有进行校验,不能保证其准确性

源码下载:

/Files/AloneSword/AloneSword.Component.Cache.rar

完整文件下载:

http://docs.google.com/View?id=djsssq3_69gkvbmtcp