坏人

heycache2缓存,不做存储引擎,只是胶水。

设计思想:

 

 * 本质上,这就是一个用于粘合各种缓存引擎的东西,并增加了一些小巧的高级特征,自己不做任何实现,
 * 仅仅对目前的各种缓存结构进行包装处理,并在保证兼容性的情况下尽可能实现一些实用的特性
 *
 * 确定性特征:缓存引用机制、分布的过期通知机制
 *
 * 不确定特征:远程依赖、多级缓冲机制、
 *
 * 已完成特征:基础功能、引用机制、分布过期通知、
 *
 * 未完成特征:多级缓冲机制、不依赖任何缓存引擎的有效性检查
 *
 * -- 特征介绍 --
 *
 * 分布过期通知:很大部分缓存的数据,读的比例远远大于写,也就是所谓的高命中率,这样一来,我们希望将这些数据,直接缓冲在各个本地节点的进程内,降低
 * 读取时候的通信成本,提高响应速度,而在写的时候,由各个本地节点发送一个通知到中央通知服务器,再从这里分发到各个节点去,使之失效,从而导致缓存的
 * 重加载,实现各个节点的缓存版本同步。
 *
 * 多级缓存:一个新设想,当一个key的数据被set到缓存的时候,并不实际缓存,仅仅找个地方存下这个key以及他的set和get次数,第2次再SET的到文件缓存中,
 *           第3次的时候SET到内存或者远程的如memcached当中,这样可以有效的提高缓存命中率,解决因为搜索引擎进行全站扫描等引起的低命中率问题。
 *
 * 不依赖任何缓存引擎的有效性检查:针对文件缓存等,可以将缓存包装后存储,读取后解包,校验过期等有效性,最后逻辑判定是否有效,是删除还是返回。
 *
 * 引用机制:有的缓存,内容是一样的,但需要多个key,主要目标是解决这个问题。
 *
 * 远程依赖:有了分布通知的话,这个功能多少有点鸡肋,当初的目的是在本地建立一个TABLE存储缓存的KEY和依赖条件,当条件触发后,会通知远程服务器,
 *           并可能进一步通知各节点,缓存失效了。
 *

 

大致就是这样,代码开源,BSD,http://code.google.com/p/heycacher2/

 

现在还是一个基础版本,会不断的完善实现,但已经过基本的压力测试了,有兴趣的朋友可以一起来参与,众人拾柴火焰高。

posted on 2008-07-30 22:06  cnlamar  阅读(1555)  评论(14编辑  收藏  举报

导航