我正在研究 PHP 中网站的高性能编码,这个想法突然出现在我的脑海中:
我们知道访问数据库会占用大量 CPU,因此我们缓存这些数据,将其保存到 HDD。但我想知道,它不能放在服务器的 RAM 中,所以我可以更快地访问它吗?
我正在研究 PHP 中网站的高性能编码,这个想法突然出现在我的脑海中:
我们知道访问数据库会占用大量 CPU,因此我们缓存这些数据,将其保存到 HDD。但我想知道,它不能放在服务器的 RAM 中,所以我可以更快地访问它吗?
您可能想查看 memcached:
PHP 通常带有APC作为字节码缓存。您也可以将其用作本地缓存。如果您在分布式/集群环境中需要某些东西,那么memcached(可能还有beanstalkd)是要走的路。
XCache、eaccelerator、apc 和 memcache 允许您将项目保存到半永久内存(在大多数情况下,您不一定知道项目何时到期)。它与数据库不同,更像是键/值列表。缺点是它需要第三方库,因此根据您的环境,您可能会受到一些限制。
我认为您可以使用共享内存(通过 php 的 shmop_ 函数)获得相同的效果。但是我从来没有使用过它们,也不知道它们是否包含在 php 的库中,所以有人可以随意抨击我或编辑掉这个提及。
如果您的服务器是任何好的,那么它已经这样做了。但是,当然,您的服务器可能还为除您之外的数千个其他任务提供服务,这意味着您并没有自己拥有该服务器的缓存。
如果除了你之外真的有几千人在服务,那么在这几千人中至少有一个疯子的可能性会更高,他正在做他真的不应该做的事情,但服务器有没有被编程为检测,没有被编程为停止,而只是被编程为尝试并充分利用它,以牺牲x999“负责任”用户的资源可用性为代价。