看这里:https://github.com/acorncache/acorn-cache
这个是最近带着两个我们的学生做的他们的毕业项目。
主要亮点:
- Rack 中间件,即插即用 - 兼容 HTTP 标准(RFC 2616) - 支持 Redis 和 Memcached 作为缓存存储
相对于已有的 Rack::Cache, 提供了服务器端可配置的 Page Rules, 可以针对不同的路径配置缓存方式以及 定制:TTL 时间,忽略 query params ( marketing 加的 utm tag 什么的可以直接忽略), 和比较保守的 must_revalidate 头设置(检查 etags 和 last_modified)
因为这些设置,acorn_cache 可以用于对一致性要求不大,但流量很大的动态页面,比如包括一些动态内容的网站首页,或者数据库数据驱动的’准“静态页面。这些功能可以用 Varnish 或者在一些高端的 CDN 比如 cloudflare 里面来实现,但是 acorn_cache 因为是纯 Ruby 实现可以支持到任意 Regex URL 匹配,用起来会比较方便。在类似 Heroku 这类 PaaS 环境也会很有用。 (他们的二期计划是做一个 Heroku 的 Addon 服务来托管)
请大家在功能和代码层面都提意见 - 他们现在在写系统层面的测试,应该几天后这方面会完善。