阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

使用 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:16797
用户头像

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

关注

评论

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

十大排序算法--基数排序

Ayue、

排序算法 8月日更

网络攻击的高频出现,高防服务器是最佳的选择

九河云安全

BERT模型为什么这么强?

博文视点Broadview

“互联网+”大赛之AI创新应用赛题攻略:大胆脑洞,共绘智慧生活蓝图

华为云开发者联盟

AI HarmonyOS 大赛 互联网+ HMS Core

同为电动小车热门,欧拉白猫比拼零跑T03,谁更胜一筹?

科技热闻

生产环境全链路压测平台Takin

TakinTalks稳定性社区

开源 高可用 全链路压测 性能压测

带你了解Go怎样实现二级缓存

Regan Yue

redis 二级缓存 Go 语言 8月日更

Android开发:获取手机当前连接的WiFi名称

三掌柜

8月日更 8月

书单 | 振聋发聩,撼世经典!总有那么一些书经得住时间的考验

博文视点Broadview

当 CloudQuery 遇到大数据

BinTools图尔兹

大数据 hive ES 数据库管理

毕业设计:设计电商秒杀系统

贯通

#架构实战营

oeasy教您玩转vim - 12 - # 词头词尾

o

docker入门:单机elasticsearch安装记录,保证无坑

小鲍侃java

8月日更

Python代码阅读(第8篇):列表元素逻辑判断

Felix

Python 编程 Code Programing 阅读代码

【Vue2.x 源码学习】第三十一篇 - diff算法-比对优化(下)

Brave

源码 vue2 8月日更

百度大脑DuMix AR携明星数字员工首次亮相China Joy,智能虚拟形象系统全面升级

百度大脑

人工智能 ChinaJoy 虚拟偶像 数字人

WeLink的杀手锏和远程办公软件的另一面

华为云开发者联盟

远程办公 华为云 welink 视频会议 数字化办公

淘宝杨宽:淘宝直播低延迟架构演进和实践丨ECUG Meetup 回顾

七牛云

音视频 淘宝 ECUG 七牛云

Apache APISIX 在移动云的应用

API7.ai 技术团队

开源 网关 APISIX

Prometheus 监控SpringCloud微服务

Rubble

Prometheus SpringCloud 8月日更

破解三大安防视频痛点,看华为4大硬核视频上云技术

华为云开发者联盟

视频 华为云视频 安防 摄像头 安防视频

Druid 加载 Kafka 流数据 Supervisor 配置

HoneyMoose

netty系列之:基于流的数据传输

程序那些事

Java Netty nio 程序那些事

索信达控股:打造新一代中小银行智能营销平台体系的道与术

索信达控股

《社会心理学》--从众和服从

箭上有毒

8月日更

数据产品经理是做什么的?

蒋川

【Flutter 专题】71 图解基本隐式动画 Widget

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

手撸二叉树之最小深度

HelloWorld杰少

数据结构与算法 8月日更

探究Presto SQL引擎(1)-巧用Antlr

vivo互联网技术

sql 编译器 presto antlr4

【LeetCode】0~n-1中缺失的数字Java题解

Albert

算法 LeetCode 8月日更

四色建模:用户转化率 KPI

escray

学习 极客时间 如何落地业务建模 8月日更 四色建模

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