我想使用apc_store()
来缓存一些结果。
但我需要知道数据将存储在哪里,以及限制是什么。
它是否总是存储在内存中?还是也会写入磁盘?我希望不经常访问的数据存储在磁盘上。我应该使用不同的缓存系统吗?
这是限制吗?apc.shm_size = 32MB
。如果是,当我超过它时会发生什么?
通过apc_store()
存储在APC变量缓存中的数据始终存储在内存中。如果您需要存储比这更多的数据,您将需要自己想出其他缓存解决方案。
apc.shm_size
配置指令设置了整个APC共享内存缓存的大小,该缓存用于操作码和用户变量。如果您向缓存中写入的数据超过此处指定的大小,将从缓存中删除元素,从最近最少使用的元素开始。您的代码需要能够处理这个问题——毕竟,它是一个缓存,而不是数据库。
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
APC一直将数据存储在内存中,它的设计就是如此。你不能让APC把数据写入磁盘,但当然可以为缓存需求实现几个不同的存储适配器。如果你想要一些东西存储在磁盘上,可以实现一个文件适配器。不同的大小设置确实是你分配给APC的内存量,如果超过了这个限制,APC将开始倒出LIFO(后进先出)。这只会影响你的性能,而不会影响其他方面。你的应用程序需要能够在有或没有缓存的情况下正常运行。如果不是这样,那么你就滥用了缓存作为持久化的概念。