phpstudy怎样优化运行速度 性能优化的几个实用方法

php接口优化有哪些方法

用PHP编写支持高并发的网站,需要做什么处理?

我记得去年双十一期间,一个电子商务网站倒闭了。
客服代表向群里发消息称,凌晨2 点服务器崩溃,用户投诉量铺天盖地。
当时改代码的时候,运维人员说我们需要加缓存。
查看每秒数百个订单且整个数据库正在运行的闪购活动。
不死才奇怪。

缓存这个东西要看场景。
比如用户凭证这种高频查询,可以直接放在Redis中,不需要Codis集群。
无论如何,内存足够了。
上次测试中,1 6 G Redis同时执行数千次,命中率高达9 8 %。
它只是偶尔渗透。
如果无法检测到,则说明是硬加载。
最后,必须添加一层布隆过滤器。
我记得去年在知乎上看到过这个布隆过滤器的东西。
我花了一个下午才弄清楚。
其实可以节省很多流量。

消息队列也是个好东西。
公司上次推广Event Push时,直接将短信模板添加到队列中,异步发送。
前后端分离,不用等人。
但是,需要对队列进行监控。
上次我发现一个消费者被卡住了。
处理了半天,发现代码写得不好,忘记回复ACK了。
结果,这数万条消息被重新排队。
最后运维小哥骂了我,说加个死信队列就更好了。

MySQL的优化一定要慢慢来。
上次我更改查询时,我将 JOIN 变成了子查询,实际上速度快了 3 倍。
测试女孩当时就震惊了。
然而,添加太多索引是有问题的。
上次我添加复合索引时结果太慢了。
我花了很长时间才发现统计栏是错误的。
所以索引取决于公司。
不要盲目添加它们。

我记得有一个大厂家提出了一主多从的问题,说把它的结构更新为一主四从后,请求直接翻倍。
但是,不能盲目改变配置。
上次添加存储时我忘记同步参数。
结果MySQL直接蓝屏了,花了两天才恢复。
因此,最好一步更新配置,例如B.通过直接添加1 2 8 GB内存和3 2 核CPU来避免出现问题。

不加区别地拒绝请求确实是一个坏主意。
不过,在上次测试中,拒绝率调整为3 0%,实际并发用户数达到了2 万。
此时,运维代表向群里发消息称,如果拒绝率提高到5 0%,就有可能支持3 万并发用户。
但这东西真的有用吗?如果用户意识到每次访问都有 5 0% 的失败机会,他可能会立即责骂他的母亲。