写点什么

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

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

关注

评论

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

vue3 + tsrpc +mongodb 实现后台管理系统

--linshuai

mongodb nodejs Vue3 后台管理系统

TiCDC同步kafka问题总结

TiDB 社区干货传送门

实践案例 6.x 实践

Postgres 中文周报:Postgres Weekly 537 期

酷克数据HashData

图像处理 - 自动纠偏 -JAVA

alexgaoyh

Java 图像处理 自动纠偏 傅里叶频谱 霍夫变换

软件测试/测试开发/全日制/测试管理丨selenium的三种等待方式

测试人

软件测试

文心与飞桨共享生态下的大模型训推部署创新实践计划

百度开发者中心

人工智能 大模型

等保三级测评:TiDB 客户端服务端间通信开启加密传输实践

TiDB 社区干货传送门

实践案例 数据库连接

速查!优惠券核销情况(支付宝优惠券)

盐焗代码虾

支付宝 经验分享 券核销

软件测试/测试开发/全日制/测试管理丨Web自动化测试价值与体系

测试人

软件测试

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

西柚子

图像边缘检测-去黑边-JAVA

alexgaoyh

Java 图像处理 去黑边 边缘检测 canny

“全球金牌课程”2024年3月9-10日 · CSM认证在线周末班【提前报名特惠】CST导师亲授

ShineScrum

敏捷教练 ScrumMaster ScrumMaster认证

AI时代下的智能商品计划如何助力服装企业实现库存精准优化

第七在线

drainer 异常宕机原因分析

TiDB 社区干货传送门

集群管理 6.x 实践

喜讯!云起无垠入选2023年度中国数字安全能力图谱

云起无垠

【标准解读】物联网安全的系统回顾

不在线第一只蜗牛

软件 物联网 项目开发

软件测试/测试开发/全日制/测试管理丨Web测试框架Selenium

测试人

软件测试

云上rds是暴利吗?是我们用tidb来替代他。

TiDB 社区干货传送门

数据库架构设计

TiDB × 杭州银行丨首个云原生、分布式、全栈国产化银行核心业务系统投产上线

TiDB 社区干货传送门

实践案例

如何使用TiDB中的Placement Rules功能

TiDB 社区干货传送门

7.x 实践

荣耀开发者大会2023 · 一张图读懂开发者服务分论坛

荣耀开发者服务平台

开发者大会 生态共建 honor 分发

大模型推理优化实践:KV cache复用与投机采样

阿里技术

大模型 推理优化 KV cache 投机采样 RTP-LLM

gRPC 和 RPC:分布式系统通信的核心机制解析

Apifox

程序员 gRPC 网络协议 RPC grpc双向流

浅尝在 Rocky 9 下自助生成 PDF 格式的 TiDB 文档

TiDB 社区干货传送门

管理与运维

【Java技术专题】「攻破技术盲区」攻破Java技术盲点之unsafe类的使用指南(打破Java的安全管控— sun.misc.unsafe)

洛神灬殇

Java 后端 unsafe 原理分析 2024年第八篇文章

软件测试/测试开发全日制|Pytest测试框架Fixture作用域详解

霍格沃兹测试开发学社

入选人民网2023普惠金融优秀案例,合合信息旗下启信宝赋能银行对公信贷数字化转型

合合技术团队

银行 数字化 合合信息 启信宝

BOE(京东方)供货荣耀Magic6系列 定义柔性OLED低功耗全新标准

科技热闻

tidb-v7.4初体验

TiDB 社区干货传送门

7.x 实践

一篇文章彻底搞懂TiDB集群各种容量计算方式

EquatorCoco

容器 集群 TiDB

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