2

我有一个应用程序正在使用 Curl 获取多个电子商务网站,寻找最优惠的价格。此过程返回一个表格,比较所有搜索网站的价格。

但是现在我们有一个问题,商店的数量开始增加,而加载时间实际上在用户体验方面是无法接受的。(实际上是 10 秒页面加载)

因此,我们决定创建一个数据库,并开始将所有 Curl 过滤结果注入到该数据库中,以减少 DNS 调用,并增加 Pageload。

我想知道,尽管我们付出了所有努力,实现 Memcache 模块仍然是一个优势吗?我的意思是,它会更有帮助还是只是浪费时间?

Memcache 的想法是受到这个主题的启发,一个人有类似的问题:Memcache 处理高延迟 Web 服务 API - 好主意吗?

4

2 回答 2

1

Memcache 可能会有所帮助,但(在我看来)这是一种解决问题的奇怪方式。如果是我,我会这样做:

首先,我确实会在我的数据库中缓存我可以缓存的所有内容。当用户搜索或任何触发此操作的交互时,我会向他们显示一个“搜索”页面,其中包含服务器当前具有的任何结果,以及一个在异步搜索完成时填满的进度条。

当它们可用时,我会使用 AJAX 添加其他结果。我想象搜索大约需要十秒钟 - 它可能需要更长的时间,这很好。只要您有进度条,您的用户就会欣赏并理解 Stuff Is Going On。

显然,通过系统进行的搜索越多,数据库中的最新数据就越多。我会使用不到半小时的缓存结果,我还会记录搜索词并确保始终缓存前 100 个(左右)搜索。

了解您的客户并拥有他们想要的东西。这与任何特定技术没有太大关系,但这完全取决于您预测他们想要什么的能力(或编写为您预测的软件!)

哦,PHP 完全没有理由不能胜任这项工作。将一堆不相关的接口捆绑在一起是 PHP 最擅长的事情之一。

于 2012-08-21T02:35:17.897 回答
0

您的结果超出了PHP的范围。当一个 cronjob 可以很容易地用于填充您的数据库并且您的 PHP 脚本可以简单地查询您的数据库时,不要费心在 PHP 中破解一个结果。

如果您打算只坚持使用 PHP,那么我建议您更改脚本以根据您填充的结果索引您的数据库。要填充结果,请让一个 cronjob ping 一个用户无法访问的 PHP 脚本,该脚本将执行您的所有 curl 功能。

于 2012-08-21T02:26:54.783 回答