【问题标题】:Cache remotely accessed websites缓存远程访问的网站
【发布时间】:2015-08-31 09:57:35
【问题描述】:

我有一个经常检索远程网站(通过 cURL)的应用程序,我想知道关于缓存这些 HTTP 请求的选项是什么。例如:

application -->curl-->www.example.com

问题是cURL在一小时内可能被调用数百次,每次都需要发出数百个HTTP请求,这些请求基本相同。那么,我可以加快速度吗?我正在尝试Traffic server,但对结果不是很满意。我想 DNS 缓存是必须的,但我还能在这里做什么?应用程序运行的系统是 CentOS。

【问题讨论】:

  • 您可以使用文件系统或数据库并将 curl 响应存储在那里。给它一个 TTL 并在需要时刷新。非常常见的情况,尝试谷歌搜索“缓存”?您是否专门询问持久层使用什么?
  • 将响应存储在数据库中涉及更改应用程序中不支持任何类型缓存的大量代码,因此我想在操作系统级别解决此问题。如果我朝那个方向发展(数据库),Memcached 会是存储 HTTP 响应和 HTTP 标头的好地方吗?
  • 取决于您缓存的 HTML 响应的大小。像 memecache 这样的键/值存储并不适合存储“大”值。使用 memcache、RDBMS 和文件系统添加 I/O 的难度非常相似......可能更多地取决于......互斥锁需求、可用内存、您知道的其他注意事项......使用文件系统,您总是可以添加一些东西比如varnish 或顶部的 Traffic Server。
  • 谢谢。我已经使用文件系统作为存储实现了缓存,它现在运行得非常快。

标签: php caching curl centos


【解决方案1】:

我不知道为什么 Traffic Server 没有提供令人满意的结果,但一般来说,带有缓存的正向代理设置是做到这一点的方法。您当然会确保来自 www.example.com 的响应是可缓存的,无论是通过缓存代理服务器上的配置,还是直接在源 (example.com) 上。这可能是代理缓存世界中最大的困惑,对可缓存与不可缓存的期望不符合要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 2018-07-02
    相关资源
    最近更新 更多