javascript - 使用 memcached 扩展以存储 gzip 文件

标签 javascript performance memcached

我有一个为浏览器提供 javascript 源文件的网络服务。 javascript文件由php实时编译,包含一些文件。生成的文件一天只更改几次。它在提供给浏览器之前由 apache 压缩。

我想使用 memcached 从内存中为它提供服务,以避免磁盘和 cpu 加载文件包含和重复 gzip。

我的问题是如何在 memcached 中 gzip 和存储一个 javascript 文件并提供它(从 php)?

在我看来,如果文件不在存储中,我应该通过包含获取文件、获取输出缓冲区、gzip 并将其存储在 memcached 中。我对么?是否有一些标题我应该添加到输出中或者我应该做些什么来使结果与我的 apache 当前提供的 gzip 文件兼容?

更新:我没有提到该文件有几个由 url 参数控制的变体,这会导致包含不同的 def 文件。如上所述,每个变化都是相当静态的。

最佳答案

如果您使用适当的工具来完成他们设计的任务,那是最好的。

在您的情况下,您有一个缓慢变化的文件,该文件将静态提供。我的意思是它不依赖于查询,但在其有效期内对于每个查询都是相同的。

为此,请使用一个好的缓存网络服务器或在您的服务器前面放置一个缓存/负载平衡器。 Squid、Varnish 或 NginX 都可以。事实上,它们中的任何一个都可以像 memcached 一样快地提供静态文件。请确保自己对文件进行 gzip 压缩并像那样提供服务。

memcached 在写入速度方面胜过其中任何一个,而不是在服务方面。所以它是随查询参数变化的内容的最佳答案,因此它必须不断生成和过期(并且重叠)。

由于您只会压缩和写入文件几次,因此压缩/写入时间无关紧要。之后,多级缓存将为您提供最佳性能。

另请注意,由于 mencached 不是网络服务器,因此它的缓存不像适当的网络缓存那样“靠近”客户端,从而否定了任何假设的读取性能优势

关于javascript - 使用 memcached 扩展以存储 gzip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1441018/

相关文章:

ruby-on-rails - 使用 Memcached 进行片段缓存

Django 只缓存没有 GET 或 POST 参数的页面?

javascript - 为什么我的 PostUpdateOrder 插件执行两次 CRM 2013

javascript-css 在 chrome 中打印时隐藏页面 url(但仍显示页码)

asp.net - 监视 ASP.NET 应用程序的负载

android - 使用 Android 执行高效的 SQLite 插入

java - 内存缓存监控

javascript - AngularJS html5mode 和硬 404

javascript - MongoDB 查询结果作为循环 Controller

ios - 我什么时候应该将 Runloop 应用到我的程序中,为什么?