如何在PHP中构建内存服务器端缓存?

时间:2011-10-13 17:54:11

标签: php caching server-side in-memory

我试图通过提供内存缓存来减少数据库访问量。 我知道我可以使用会话和cookie来获取缓存,但这仅适用于每个客户端。如果在每个会话中进行一次相同的查询,则缓存将是无用的。但我只想访问数据库一次并将其缓存。

有没有办法在内存中创建一个可由服务器端脚本访问的缓存?我不想将缓存数据存储在文件中..

4 个答案:

答案 0 :(得分:3)

如果已安装,您可以使用MemCache

另一种选择是在MySQL中创建一个存储类型为MEMORY的表。您仍将使用该数据库,但速度会快得多。但MemCache确实会减少数据库的负载,因为你可以将数据缓存在数据库之外,甚至可以在不同的服务器上缓存。

答案 1 :(得分:2)

在共享主机空间中,您可能没有可用的内存缓存。在这种情况下,请检查APC。如果你在多台机器上运行,Memcache真的很震撼。如果您在单个Web服务器上运行站点,APC将执行相同的工作(开销较低)。

答案 2 :(得分:1)

如果您想拥有多台服务器或能够使用多台计算机访问缓存,那么

Memecached / Memcache 是使用最广泛的解决方案。

但是,如果您只希望缓存是本地的(在运行PHP代码的同一台机器上),那么您可以选择其他更容易的选择:

APC模块还可以使用apc_addapc_fetch等将内容存储在内存中....

或者您可以在 tmpfs 中使用标准文件。这具有完全可移植的优点,如果任何缓存系统使用文件,您可以非常快速地进行设置。

答案 3 :(得分:0)

尝试MemCache

Memcache模块为memcached,高效缓存守护程序提供了方便的过程和面向对象的接口,该守护程序专门用于减少动态Web应用程序中的数据库负载。