写点什么

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

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

关注

评论

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

《TED TALKS演讲的力量》阅读笔记

Jesse Xing

读书笔记 演讲 TED

面试前不陪女朋友也要看完这套spring源码面试题(附答案)

小Q

Java 学习 编程 架构 面试

如何稳扎稳打推进数字货币进程

CECBC

数字货币

CDN是什么?

德胜网络-阳

数字货币OTC交易所开发,交易所搭建方案

13530558032

做个别人家的网页

MySQL从删库到跑路

html/css 网页设计

架构师训练营第一期 - week8

习习

【涂鸦物联网足迹】涂鸦云平台接口说明

IoT云工坊

人工智能 物联网 API sdk 云平台

架构师训练营第 1 期第 7 周总结

owl

极客大学架构师训练营

价值超10亿美元的直播系统架构图是什么样子的?

冰河

系统架构 高并发 高性能 亿级流量 直播架构

架构师训练营 - 第七周 - 作业一

行者

《乌合之众——群体心理研究》读书笔记

Jesse Xing

读书笔记 心理学 乌合之众 群体心理学

算法有多重要,看字节腾讯等公司面试多重视就行了

小Q

Java 学习 架构 面试 算法

神经网络之dropout总述

Dreamer

学习

架构训练营 - 第7周课后作业 - 学习总结

Pudding

百亿级数据分表后怎么分页查询?

艾小仙

Java MySQL 数据库 编程语言 分库分表

又一道比较运算符相关的面试题让我明白基础很重要

Gopher指北

Go 语言

金融科技的未来

CECBC

金融

终于啃完了Java核心原理+框架“面试圣经”成功五面上岸美团

小Q

Java 学习 编程 架构 面试

魏际刚:精准谋划我国供应链发展新方位

CECBC

供应链 物流

一款区块链钱包开发需要多少钱?数字资产钱包开发搭建

13530558032

从智慧计算的点、线、面,读懂浪潮AI的进化轨迹

脑极体

从接口异常说说线上问题排查流程

QiLab

线上排障 指标监控 链路监控 日志监控 排障流程

爆料!前华为微服务专家纯手打500页落地架构实战笔记,已开源

996小迁

架构 面试 分布式 微服务 程序人生

《精进:如何成为一个很厉害的人》阅读心得

Jesse Xing

读书笔记 个人成长 精进

不会这些mysql得面试题,那可能说明你要回炉了

小Q

Java MySQL 数据库 学习 面试

搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway项目

yi念之间

USDT承兑支付平台技术开发,承兑商币支付交易平台搭建

13530558032

从一场“众盟科技云滇之播”,我们发现了美食直播的商业与公益价值

脑极体

害怕重构?都怪我太晚和你介绍该如何重构,现在我来了

小Q

Java 学习 程序员 面试 重构

初级工程师职场生存要点

javaadu

程序员 职场成长 开发日志

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