我有一个高流量网站,我需要确保我的网站足够快,以便快速向所有人展示我的网页。
我在 Google 上搜索了许多关于速度和优化的文章,以下是我发现的:
- 缓存页面
- 将其保存到磁盘
在内存中缓存页面:
这非常快,但是如果我需要更改页面的内容,我必须将其从缓存中删除,然后将文件重新保存到磁盘上。
将其保存到磁盘
这很容易维护,但每次访问页面时我都必须在磁盘上读取。
我应该采用哪种方法?
最佳答案
Jan 和 idm 是对的,但方法如下:
缓存(页面或内容)对性能至关重要。无论您的内容是静态的还是动态的,您向数据库或文件系统请求的最少调用次数会更好。
如果需要运行动态内容,可以使用 PHP 加速器:
我的建议是使用 Alternative PHP Cache (APC)
这是一些基准:
What is the best PHP accelerator to use?
PHP Accelerators : APC vs Zend vs XCache with Zend Framework
Lighttpd – PHP Acceleration Benchmarks
对于缓存内容甚至页面,您可以使用:Memcached或 Redis .
内存缓存: 免费和开源、高性能、分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。 Memcached 是一种内存键值存储,用于存储来自数据库调用、API 调用或页面渲染结果的任意数据(字符串、对象)的小块。
Redis Redis 是一个开源的高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串、哈希、列表、集合和排序集合。
两者都是非常好的缓存内容或变量的工具。
这里有一些基准,你可以选择你喜欢的:
Redis VS Memcached (slightly better bench)
On Redis, Memcached, Speed, Benchmarks and The Toilet
你也可以安装Varnish , nginx , 或 G-Wan
清漆: 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 G-WAN 是具有 ANSI C 脚本和键值存储的 Web 服务器,其性能优于所有其他解决方案。
这里有一些基准,你可以选择你喜欢的:
Serving static files: a comparison between Apache, Nginx, Varnish and G-WAN
Web Server Performance Benchmarks
Nginx+Varnish compared to Nginx
关于PHP网站优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258567/