【发布时间】: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。
-
谢谢。我已经使用文件系统作为存储实现了缓存,它现在运行得非常快。