APC在哪里存储数据?

时间:2013-02-03 23:40:06

标签: php caching apc

我想使用apc_store()来缓存一些结果。

但我需要知道数据的存储位置,以及限制是什么。

它总是存储在内存中吗?还是写入磁盘?我希望非常频繁访问的数据存储在磁盘上。我应该使用不同的缓存系统吗?

这是限制吗? apc.shm_size = 32MB。如果是这样,当我超过它时会发生什么?

3 个答案:

答案 0 :(得分:11)

通过apc_store()存储在APC变量缓存中的数据始终存储在内存中。如果你需要存储的数据超过了这个数据,你需要自己想出一些其他的缓存解决方案。

apc.shm_size配置指令设置整个 APC共享内存缓存的大小,该缓存用于操作码和用户变量。如果向缓存写入的数据多于此处指定的数据,则将从缓存中删除元素,从最近最少使用的开始。你的代码需要能够处理这个问题 - 它毕竟是一个缓存,而不是数据库。

答案 1 :(得分:3)

APC会将其存储在内存中。

您可以使用apc.shm_size

设置要使用的大小

这是解释APC如何工作的链接。 http://lampzone.wordpress.com/2010/03/26/how-does-apc-work/

所有APC设置列表 http://php.net/manual/en/apc.configuration.php

答案 2 :(得分:2)

APC始终将数据存储在内存中,它专为此而设计。您不能让APC将数据写入磁盘,但您当然可以实现多个不同的存储适配器以满足您的缓存需求。如果您希望将某些内容存储在磁盘上,请实现文件适配器。不同的大小设置确实是你分配给APC的内存量,如果超过它,APC将开始转储LIFO。这应该只影响你的表现而不影响你的表现。您的应用程序需要能够使用或不使用缓存。如果情况并非如此,那么你就是在滥用持久性缓存的想法。