当前位置:  开发笔记 > 编程语言 > 正文

我可以在同一台服务器上使用APC和memcached吗?

如何解决《我可以在同一台服务器上使用APC和memcached吗?》经验,为你挑选了1个好方法。

我正在使用memcache来缓存对象,但是想添加像APC这样的操作码加速器.由于它们都涉及缓存,我不确定它们是否会"踩到彼此的脚趾",即我不确定memcache是​​否已经是OP代码加速器.

有人可以澄清吗?我想将它们用于两者 - 用于不同的事情.用于缓存我的对象的memcache和用于代码加速的APC



1> Klinky..:

Memcache更像是分布式对象缓存而不是APC或XCache,它将PHP字节码存储在内存中,因此您不必每次都解析它.他们的主要目的是不同的.

例如,如果您有一个人们经常请求的CPU密集型数据库查询,您可以将生成的对象缓存在内存缓存中,然后引用它而不是一直重新运行该查询.

APC和XCache确实具有类似的对象缓存功能,但您仅限于主机.如果您希望10个不同的服务器都可以访问该对象而无需为每个服务器重新执行查询,该怎么办?你只需将它们引导到你的memcache服务器就可以了.如果您只有一台服务器,您仍然可以获益,因为如果您需要分支到更多的盒子,使用memcache将有助于您将来扩展.

要考虑的主要问题是,如果您认为您的应用需要扩展.Memcache有更多的开销,因为你必须使用TCP连接来访问它,而不仅仅是对APC/Xcache共享对象的函数调用.

但是,Memcache具有以下优点:

比磁盘或重新运行查询更快.

扩展到多个服务器.

使用许多不同的语言,您的对象不会仅限于PHP + APC/Xcache.

所有进程/语言都可以访问相同的对象,因此您不必担心PHP子进程是否具有空对象缓存.如果您正在运行PHP-FPM,这可能不是什么大问题.

在大多数情况下,我建议在memcache中缓存您的对象,因为它不会更难以及将来更灵活.

请记住,这仅适用于缓存对象.内存缓存确实具有任何字节码或PHP加速功能,这就是为什么我会运行它与APC或XCache将并排侧


+1.另一点要补充:APC不像memcached那样处理高并发性.我们在生产中使用memcached和APC来存储适当的应用程序数据 - 我们也考虑开始使用Redis(用于持久性和列表操作).在高并发性的情况下,每个人都擅长某些事情而其他事情并非如此.
推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有