缓存,是否需要同时安装APC和Memcached?

2013-08-31 02:08:04 +08:00
 hdinfo
512内存的云主机,主要跑一个Discuz的论坛

Discuz支持APC,所以是否需要同时安装APC和Memcached?

听说APC只是php加速,Memcached是数据库查询缓存加速,所以应该需要同时安装吧??

具体不是很懂,所以问问大家
5987 次点击
所在节点    PHP
16 条回复
laogui
2013-08-31 09:20:02 +08:00
一直同时用,没什么问题。
freefcw
2013-08-31 09:22:06 +08:00
必须要啊。。。你自己都知道apc和memcached作用不一样了,虽然apc自带一些缓存功能,但是和memcached不是一个作用
Loveyuki
2013-08-31 10:13:33 +08:00
APC 自带了 key-value 缓存, 速度也比 memcached 快,但是因为他基于共享内存的,只能本机的 PHP 进程使用。分布式做不到。

memcached 的访问是基于tcp/udp网络协议的,通讯协议确定以后,可以在不同机器和不同语言之间共享。分布式很容易做到。
wzxjohn
2013-08-31 10:17:02 +08:00
512M内存就别玩memcache了吧。。。
julyclyde
2013-08-31 21:20:36 +08:00
建议你先搞明白这俩是做什么的。memcached并不是装了就能起作用的,而是应用程序主动去用它才行
kennedy32
2013-08-31 21:25:27 +08:00
跟随官方脚步,转到zendopcache中。。。。
raincious
2013-08-31 22:03:08 +08:00
楼主,建议测试下discuz看能不能跑在php 5.5上,如果能就装php 5.5,然后上opcache,然后再上个memcached,这样就全了。速度能快很多倍。

我最近的一个项目跑在php 5.5上比跑在我自己php 5.4的开发环境上竟然快10倍还多一点(大部分5ms内产生页面)。当然,我的框架是针对php 5.5优化了下的倒是。

不过看测评,光是php 5.4 + apc VS php 5.5 + opcache这速度就不只差一点半点了。

另外。。。如果楼主内存小但是胆子大的话+没有特别大量的数据需要缓存+不需要分布式缓存的话,可以试试看直接用文件缓存,然后让网站运行在/dev/shm上,同时加上php 5.5 + opcache。不知道这样速度是不是能更快。
thbourlove
2013-09-01 00:23:35 +08:00
@raincious `我的框架是针对php 5.5优化了下的`求介绍针对php 5.5都可以做什么特别的优化?
gaody
2013-09-01 00:32:12 +08:00
@raincious 求教
hdinfo
2013-09-01 02:15:18 +08:00
php 目前用的是5.3,因为一些脚本是5.3写的,所以暂时没有升级的打算。

目前APC+Memcached+gzip,discuz速度还可以,大部分页面5毫秒内也能打开,所以暂时不想折腾了。谢谢大家。
nine
2013-09-01 10:57:00 +08:00
@raincious 同求,顺便求评测地址。。
raincious
2013-09-01 11:15:51 +08:00
@thbourlove @gaody opcache可以自动缓存php编译后的opcode。这样的话,如果php文件本身没有被修改过,那么这个文件在之后就不需要重新解析。而是直接用之前的opcode运行就好了。

所以,我将数据什么的用var_export导出成数组字符串,然后存成php文件缓存,下次直接include使用这个文件就行了。

我自己的实验结果是比memcached快。所以如果未来不考虑分布式和同步的话,也可以考虑用文件缓存。只要不经常写就行了。

然后在我的框架里添加了支持,可以将:核心的实例、所创建的所有对象的实例、模板、缓存存储为php文件,然后速度自然就飞快了。(其实没什么技术含量的)

框架源是开源的,献丑下:https://github.com/raincious/facula
raincious
2013-09-01 11:47:40 +08:00
suckli
2013-09-01 16:57:48 +08:00
APC适合不频繁更改的数据,如果频繁修改缓存的数据,APC会出现严重的内存碎片,最终缓存会被耗尽。我就被坑过一次,所以还得具体看业务。
qq286735628
2013-09-01 17:09:47 +08:00
freefcw
2013-09-01 18:50:00 +08:00
@Loveyuki

@suckli 说的是,APC还是尽量不要用来做缓存了,专门用来他的OPCODE即可,个人比较喜欢放一些配置在APC里面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/80825

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX