想要一个好的内存+磁盘缓存解决方案

时间:2010-02-23 02:23:42

标签: caching memcached distributed-caching memcachedb

我目前正在将生成的HTML页面存储在memcached内存缓存中。这很好用,但是我希望将缓存的存储容量增加到可用内存之外。我真正想要的是:

  1. memcached语义(即不可靠,只是缓存)
  2. memcached api首选(但不是必需的)
  3. 大型内存中第一级缓存(MRU)
  4. 巨大的磁盘二级缓存(主要)
  5. 使用LRU或LFU从最大存储空间中的磁盘缓存中逐出
  6. 经过验证的实施
  7. 在寻找解决方案时,我找到了以下解决方案,但他们都以某种方式错过了我的标记。有谁知道:

    • 我未考虑的其他选项
    • 让memcachedb进行驱逐的方法

    已经考虑过:

    memcachedb

    • 最适合但不会驱逐:明确地“不是缓存”
    • 看不到任何驱逐方式(手动或自动)

    tugela cache

    • 放弃,不支持
    • 不想向顾客推荐

    nmdb

    • 不使用memcache api
    • 新的和未经证实的
    • 不想向顾客推荐

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

如果需要,可以使用rget命令手动清除更高版本的memcachedb,并将到期时间存储在数据记录中。当然,这意味着即使我只想要到期时间,我也会对服务器和网络请求整个数据块。不是最好的解决方案,但似乎是目前唯一可用的解决方案。

答案 2 :(得分:0)

我与EhCache合作,效果非常好。它具有内存缓存和磁盘存储,具有不同的驱逐策略。这是一个成熟的图书馆,有很好的支持。有一个memcached api包装了EhCache,专门为GAE支持而开发。

此致   乔纳森。