7

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

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

4

4 回答 4

4

您可以使用MemCache(如果已安装)。

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

于 2011-10-13T17:56:41.187 回答
2

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

于 2011-10-13T18:17:56.690 回答
1

如果您想拥有多台服务器或能够使用多台机器访问缓存,则Memecached/Memcache是最广泛使用的解决方案。

但是,如果您只希望缓存在本地(在运行 PHP 代码的同一台机器上),您还有其他更简单的选择:

APC 模块还可以使用等将内容存储在内存中apc_add…… apc_fetch</p>

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

于 2011-10-13T19:04:46.273 回答
0

试试内存缓存

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

于 2011-10-13T17:58:11.583 回答