【问题标题】:Where does APC store the data?APC 将数据存储在哪里?
【发布时间】:2013-02-03 23:40:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php caching apc


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

        【解决方案3】:

        APC 始终将数据存储在内存中,它就是为此而设计的,仅此而已。您不能让 APC 将数据写入磁盘,但您当然可以实现几个不同的存储适配器以满足您的缓存需求。如果您希望将某些内容存储在磁盘上,请实现文件适配器。不同的大小设置确实是您分配给 APC 的内存量,如果超过它,APC 将开始转储 LIFO。这只会影响您的表现,不会影响其他任何事情。您的应用需要能够在有或没有缓存的情况下运行。如果不是这种情况,那么您就是在滥用缓存以实现持久性的想法。

        【讨论】:

          猜你喜欢
          • 2015-06-23
          • 2015-11-17
          • 1970-01-01
          • 1970-01-01
          • 2016-01-23
          • 2010-11-11
          • 2019-05-23
          • 1970-01-01
          相关资源
          最近更新 更多