APC存储数据的地方在哪里?

4

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

但我需要知道数据将存储在哪里,以及限制是什么。

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

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

3个回答

11

通过apc_store()存储在APC变量缓存中的数据始终存储在内存中。如果您需要存储比这更多的数据,您将需要自己想出其他缓存解决方案。

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


3

2

APC一直将数据存储在内存中,它的设计就是如此。你不能让APC把数据写入磁盘,但当然可以为缓存需求实现几个不同的存储适配器。如果你想要一些东西存储在磁盘上,可以实现一个文件适配器。不同的大小设置确实是你分配给APC的内存量,如果超过了这个限制,APC将开始倒出LIFO(后进先出)。这只会影响你的性能,而不会影响其他方面。你的应用程序需要能够在有或没有缓存的情况下正常运行。如果不是这样,那么你就滥用了缓存作为持久化的概念。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接