php - nginx php-fpm 每秒缓存相同的多个请求

标签 php mysql symfony caching nginx

我遇到以下情况:

所有连接的用户每 2 秒向服务器发出一次 ajax 请求的拍卖网站。

数据每2秒更改一次,因此无法长时间缓存,所以我想知道。

实现这一目标的最佳方法是什么:

如果我在同一秒内有 200 个请求,请为它们提供相同的响应,而不是再次运行 php 并连接到 mysql 来获取结果。

所以我不知道这是否可以用这么短的1秒缓存时间来完成,我也不知道使用什么会更好,Nginx方面的东西,还是PHP方面的东西,例如装甲运兵车。

有什么想法吗?有道理吗?

我的问题是,我尝试调整 Nginx 和 php-fpm,现在它可以在 2000 毫秒响应时间下处理 200 个请求/秒,500 个请求/秒大约需要 5000 毫秒,所以我正在寻找一种提高速度的方法处理好事情并每秒处理尽可能多的请求。

更新:
该网站在 Symfony2 上运行,因此也欢迎任何与之相关的建议。

更新2!!!
我已将处理 ajax 请求的应用程序部分移至单个 php 文件中,而不使用 Symfony2 框架。它执行 3 个 sql 查询并返回 json 响应。现在它可以以 150 毫秒/秒的速度处理 1000 多个请求,这真的令人难以置信。我想 Symfony2 确实需要调整才能做到同样的事情,我想问题不是 php 而是框架使用的所有内存。

最佳答案

Vanilla PHP 当然比任何 PHP 框架都快,但是维护数十个这样的脚本是很痛苦的。您可以坚持使用 Symfony 并使用 Varnish处理重负载。缓存 TTL 可以低至 1 秒,并且 Varnish您可以处理数千个请求。

关于php - nginx php-fpm 每秒缓存相同的多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27200878/

相关文章:

php - Symfony2,不要在带有 KnpPaginatorBundle 的 url 中使用别名

php - 不确定为什么下拉框没有填充数据或选择

用于从 Magento 中的 sitemap.xml 中排除特定类别页面的 PHP 代码

php - 在移动设备上使用 WooCommerce 结账时将产品部分移至顶部

mysql - 插入大数据,超过 "max_allowed_packet"我能以某种方式躲避它吗?

mysql - St_within 用于获取 10 英里半径 MBR mysql

php - 如何在 symfony2 表单中生成多个复选框

node.js - 使用 symfonyrabbitMq 进行 NodeJs 通信

php - WordPress:在主体类上添加所有用户角色

mysql - Perl::Mechanize:使用循环运行一个简单的爬虫[多个查询]