PHP网站优化
我有一个高流量的网站,我需要确保我的网站足够快,可以快速向所有人显示我的页面。
我在Google上搜索了许多关于速度和优化的文章,以下是我的发现:
- 缓存页面
- 将其保存到磁盘
在内存中缓存页面:
这非常快,但是如果我需要更改页面的内容,则必须将其从缓存中删除,然后将文件重新保存在磁盘上。
将其保存到磁盘
这很容易维护,但每次访问页面时,我都必须在磁盘上读取。
我应该使用哪种方法?
我有一个高流量的网站,我需要确保我的网站足够快,可以快速向所有人显示我的页面。
我在Google上搜索了许多关于速度和优化的文章,以下是我的发现:
在内存中缓存页面:
这非常快,但是如果我需要更改页面的内容,则必须将其从缓存中删除,然后将文件重新保存在磁盘上。
将其保存到磁盘
这很容易维护,但每次访问页面时,我都必须在磁盘上读取。
我应该使用哪种方法?
Jan和idm是对的,但以下是操作方法:
缓存(页面或内容)是性能的关键。无论内容是静态的还是动态的,对数据库或文件系统请求的最小调用都更好。
如果您需要运行动态内容,则可以使用 PHP 加速器:
我的建议是使用替代PHP缓存(APC)
以下是一些基准:
PHP加速器:APC vs Zend vs XCache with Zend Framework
Lighttpd – PHP Acceleration Benchmarks
对于缓存内容甚至页面,您可以使用:Memcached或Redis。
Memcached:免费和开源,高性能,分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态Web应用程序。Memcached 是一种内存中的键值存储,用于存储来自数据库调用、API 调用或页面呈现结果的任意数据(字符串、对象)的小块。
雷迪斯Redis 是一个开源的高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串,哈希,列表,集和排序集。
两者都是缓存内容或变量的非常好的工具。
这里有一些基准测试,你可以选择你喜欢的:
关于Redis,Memcached,Speed,Benchmarks和The Toilet。
Varnish:Varnish是一个HTTP加速器,专为内容繁重的动态网站而设计。与其他HTTP加速器(如Squid)或Apache(主要是源站服务器)相比,Varnish从头开始设计为HTTP加速器。
nginx nginx(发音为?engine-x?)是一个轻量级的,高性能的Web服务器/反向代理和电子邮件(IMAP / POP3)代理,在类似BSD的许可证下授权。它运行在Unix,Linux,BSD变体,Mac OS X,Solaris和Microsoft Windows上。
格万G-WAN是一个Web服务器,具有ANSI C脚本和键值存储,其性能优于所有其他解决方案。
这里有一些基准测试,你可以选择你喜欢的:
你有一个好主意,这接近我自己所做的。如果我有一个100%静态的页面,我会保存它的html版本并将其提供给用户,而不是每次都再次生成内容。在某些情况下,这可以节省mysql查询和多个io操作。每次我进行一些更改时,我的管理界面都会简单地删除html文件并重新创建它。
事实证明,这种方法在我的服务器上的速度提高了约100倍。