是否可以在PHP中保留内存(RAM)中的变量?

时间:2009-08-19 23:04:24

标签: php database performance caching cpu-usage

我正在研究PHP中的网站的高性能编码,这个想法突然出现在我的脑海中:

我们知道访问数据库会占用大量CPU,因此我们会缓存此类数据,并将其保存到HDD中。但我想知道,它不能停留在服务器的RAM中,所以我可以更快地访问甚至更多吗?

4 个答案:

答案 0 :(得分:10)

您可能想要查看memcached:

http://www.php.net/manual/en/intro.memcache.php

答案 1 :(得分:1)

PHP通常带有APC作为字节码缓存。您还可以将其用作本地缓存。如果您需要在分布式/群集环境中使用某些内容,那么memcached(加上可能beanstalkd)就可以了。

答案 2 :(得分:0)

XCache,eaccelerator,apc和memcache允许您将项目保存到半持久性内存(在大多数情况下,您不一定知道项目何时到期)。它与数据库不同,更像是键/值列表。缺点是它需要第三方库,因此根据您的环境,您可能会受到限制。

我认为你可以使用共享内存(通过php的shmop_函数)获得相同的效果。但是我从来没有使用它们或者知道它们是否包含在php的库中,所以有人可以随意打击我或编辑这个提及。

答案 3 :(得分:0)

如果你的服务器 ANY 好,那么它已经这样做了。但是,当然,可能是您的服务器除了您的服务器之外还提供了几千个其他任务,这意味着您自己没有该服务器的缓存。

如果除了你之外真的还有几千人在服用,那么概率就会越来越高,以至于在成千上万的其他人中至少有一个疯子,他们正在做一些他真的应该做的事,但是服务器尚未被编程为检测,没有被编程为停止,而是被编程为尝试充分利用它,而牺牲了x999“负责”用户的资源可用性。