限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

使用 Rack::Cache 进行平滑的 HTTP 缓存

  • 2008-11-20
  • 本文字数:685 字

    阅读完需:约 2 分钟

缓存 Web 应用的方式有很多,他们通常都很复杂。随着应用基础设施的不断增加,基本的 Rails 页面缓存的管理变得越发单调乏味了。

Rails 2.2 通过 HTTP headers:last_modified 与 etag 引入了条件性GET 。Ryan Tomayko 遵循着RFC2616 中的internet 标准缓存说明引入了 Rack::Cache

Rack::Cache Rack 中间件的一部分,它通过基本的存储方式(磁盘、堆及 memcache)与针对缓存策略的配置系统实现了 RFC2616 中的大多数缓存特性。它可与任何使用 Rack 的 Ruby web 框架协作良好,同时它也通过了 Ruby 1.8.6 及 1.8.7 的测试。

其部分设计的灵感来源于 Python 的缓存框架 Django

Rack::Cache 扮演着网关代理( Varnish Squid )的角色,我们可以轻松使用它。它支持基于过期(expiration-based)的缓存、验证模型及各种 header 字段。

正如 Ryan King所述,如果你的应用真的需要它的话,你可以平滑地移植到真正的网关代理上:

一旦应用变得大而复杂时,你就需要使用一个像 squid 或者 varnish 这样的 http 反向代理缓存,然而从 rails 式的页面缓存到 HTTP 缓存的转变不是那么容易的。你不得不对部署和应用进行大面积的更改。这有点不爽。 借助于 Rack::Cache,你只需改变部署即可。你甚至可以增量完成它。你可以首先通过 Rack::Cache 在堆中进行缓存,然后转换到文件系统,最后到 memcache 中。当到达其范围极限时,你可以在应用前增加 squid 或者 varnhish,然后移除 Rack::Cache。对于部署来说,每一步只有一个主要的变化,这比在单独的操作中掺杂着几个大的变化要容易的多。

看看 Ryan 即将发布的基准将会很有意思。

查看英文原文: Adobe MAX Day 1 Brings AIR 1.5 and Flex 3.2

2008-11-20 11:16990
用户头像

发布了 88 篇内容, 共 269.3 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Prometheus HTTP API 查询(五)告警接口

耳东@Erdong

Prometheus PromQL HTTP API 11月日更

.NET6新东西--Http Logging

喵叔

11月日更

Kubernetes 给容器化部署和管理带来的好处

后台技术汇

Kubernetes 11月日更

年前三面美团百度挂了,疫情间啃完阿里面试宝典,成功斩获offer

Java 程序员 后端

架构实战营 - 第三期 - 模块三作业

岚哲

极客时间 架构 架构实战营

学会5位大牛撰写756页大规模Linux集群架构实践PDF,成功入职华为

Java 程序员 后端

模块三作业

小鹿

官方都不推荐?为什么MySQL不推荐使用uuid作为主键?究竟有什么坏处

Java 程序员 后端

实战:第十一篇:StringRedisTemplate获取redis信息

Java 程序员 后端

将项目转成MAVEN项目

Java 程序员 后端

工作三年的Java程序员应该达到什么水平?

Java 程序员 后端

已开源!阿里巴巴SpringCloud微服务原理与架构项目实战,请签收

Java 程序员 后端

应云而生,幽灵的威胁 - 云原生应用交付与运维的思考

Java 程序员 后端

完美!腾讯技术官发布Java零基础就业宝典,不用再怀疑人生了

Java 程序员 后端

实时数据库 架构图

Java 程序员 后端

实现一个百万级推送服务,除了它,还有谁

Java 程序员 后端

常见的SQL面试题:经典50例

Java 程序员 后端

带你了解代理模式

Java 程序员 后端

干掉GuavaCache:Caffeine才是本地缓存的王

Java 程序员 后端

干货第一弹-教你如何利用阿里开源工具进行排查线上CPU居高问题

Java 程序员 后端

学会IDEA REST Client后就可以丢掉postman了

Java 程序员 后端

安卓程序员必备hook技术之进阶篇

Java 程序员 后端

宝藏图,引起的一堆问题,轻量级锁的不解(Synchronized锁的升级)

Java 程序员 后端

实战spring自定义属性(schema)

Java 程序员 后端

将CSV的数据发送到kafka(java版)

Java 程序员 后端

幸亏有了这本623页的微服务框架实战笔记,一举拿下腾讯美团滴滴offer

Java 程序员 后端

Android C++系列:JNI 调用时缓存字段和方法 ID

轻口味

c++ android jni 11月日更

年初入职 字节跳动 的Java面试经验分享(文档)

Java 程序员 后端

架构实战营 - 第三期 - 模块三作业

lucian

架构实战营

官宣:恭喜 ChaosBlade 项目进入 CNCF Sandbox

Java 程序员 后端

常见的社会潜规则有哪些?

Java 程序员 后端

使用Rack::Cache进行平滑的HTTP缓存_Ruby_Sebastien Auvray_InfoQ精选文章