文章目录
网络营销人用WordPress建站、做电商和网络推广,给网站提升速度,能在一定程度上提升SEO效果。
在安装了VestaCP控制面板之类的Linux系统之后,可以选择一些缓存扩展来提高PHP的速度。
经常会看到的是这些缓存扩展:
- APC
- eAccelerator
- XCache
- memcached
- Redis
它们之间有什么区别?作用是什么?我们该如何选择?
陈沩亮会在本文给你答案。
一、Alternative PHP Cache(APC缓存)
Alternative PHP Cache(APC缓存)是PHP的开源缓存工具,用于缓存Opcode(目标文件)PHP中间码。
APC的缓存,分为2部分:
- 系统缓存
- 用户数据缓存
系统缓存是自动使用的:
- 这意味着APC缓存PHP文件源代码的编译结果,然后再次调用时间戳。
- 如果它尚未过期,就使用缓存代码运行它。
- 默认缓存为3600(一小时)。
但这仍然浪费了大量的CPU时间。
因此,你可以将系统缓存设置为永不过期的php.ini文件里,设置system缓存为永不过期(apc.ttl=0)。
但是,如果执行此操作,则需要在更改PHP代码后,重新启动Web服务器(例如,apache)。
目前,APC性能测试一般是指这一层的缓存;
从字面上看,Alternative PHP Cache(APC缓存)也可以被视为内存缓存扩展,
它是一个数据库缓存扩展。
二、eAccelerator
eAccelerator是一个免费的开源PHP加速器。
- 优化和动态内容缓存,可以提高PHP脚本的缓存性能。
- 因此可以让PHP脚本在编译状态种,降低服务器的资源消耗。
- 它还优化了脚本,提高执行效率,将PHP代码的效率提高1-10倍。
- eAccelerator暂不支持PHP5.5以上的版本。
如同从文字理解的那样:eAccelerator是PHP中的加速器扩展。
三、XCache
XCache是一个开源的opcode缓冲器/优化器,可以提高服务器上PHP的性能。
- 可以通过将编译后的PHP数据,缓存到共享内存来避免重复编译过程
- 并且可以直接使用缓冲区,来编译代码提高速度。
- 它通常可以将页面生成速率提高2到5倍,并减少服务器负载。
实际上,XCache是PHP加速器扩展。
四、memcached
Memcached是一个高性能的分布式内存对象缓存系统:
- 用于动态Web应用程序以减少数据库负载。
- 它通过在内存中缓存数据和对象,来减少数据库读取的数量,从而提供动态的、数据库驱动的网站的速度。
从文字中可以理解到:内存缓存扩展,更多用于集群服务器,主要用于分布式缓存。
Memcached被认为是数据库缓存扩展。
五、Redis
Redis是一个高性能的key-value数据库。
- redis的出现极大地弥补了memcached等,缺乏keyalue存储的问题。
- 在某些情况下,它可以补充关系数据库。
- 在许多情况下,Redis经常和memcached做比较。
很多人认为Redis可以完全取代memcached,因为Redis数据类型更丰富,性能不在memcached之下:
- redis有的memcached却没有;
- memcached有redis都有。
据我所知,新浪的微博和其他周边产品依赖于Redis,可以看出它功能强大。
PHP缓存、数据库缓存扩展区别
1)PHP缓存扩展:
- eAccelerator、XCache是PHP缓存扩展。
2)数据库缓存扩展:
- Redis、memcached、APC缓存是数据库缓存扩展。
(通常2者只需要安装其中1个就行了,不要贪心)
有人测试后,发现Cache数据缓存超过一定阈值,APC性能不如mcached缓存。
因此,在选择缓存扩展时,一些人会选择 xcache + memcached 的组合,或是xcache + redis 的组合。
如果在同时安装多个缓存扩展出现错误,建议只安装一个缓存扩展,其它的卸载。
PHP加速器比较总结
- 通过测试,eAccelerator是请求时间和内存使用的最佳组合,但eAccelerator暂不支持PHP5.5以上的版本。
- 通过测试,有使用加速器的速度,比没有加速器快3倍。
以上就是APC、eAccelerator、XCache、memcached、Redis之间的作用和区别。
希望陈沩亮博客( https://www.chenweiliang.com/ ) 分享的《APC,eAccelerator,XCache,memcached,Redis的区别》,对您有帮助。
欢迎分享本文链接:https://www.chenweiliang.com/cwl-940.html
喜欢就分享和按赞!您的分享和按赞,是我们持续的动力!