【问题标题】:How to 'refresh' apc cache at high traffic application?如何在高流量应用程序中“刷新”apc 缓存?
【发布时间】:2016-03-25 00:53:22
【问题描述】:

我的 symfony 应用程序有大约 500 个在线用户,所有页面上都有一些文章列表。我将查询和结果存储在 APC 中,管理员在某些数据更改时手动将其删除。问题来了:

如果我的 500 个用户在缓存被删除时刷新页面并尝试更新它(通过第一次查询数据库)我是正确的,那么其他 499 个在缓存完成之前正在损害数据库。

如何避免这种情况? APC 中是否有任何选项可以阻止它,或者我需要手动管理它?如果新缓存还没有准备好,最好的选择应该是提供旧缓存。

【问题讨论】:

  • 你缓存什么样的数据?对所有用户都是通用的,还是对每个用户都是个人的?
  • @MaxP。所有用户通用
  • 可能不是问题。可能一个用户会在第二个用户请求之前刷新它。

标签: mysql symfony caching database-performance apc


【解决方案1】:

很遗憾,恐怕没有现成的解决方案。 如果您查看 Memcached Bundle,他们会实施一种解决方案来避免此问题:enter link description here

也许您可以启发编写自己的解决方案。

【讨论】:

    【解决方案2】:

    如果对所有用户通用,您可以通过后台脚本为缓存准备数据并通过 cron 执行。也可以将版本添加到此数据的缓存键中,也可以将版本存储在 apc 中。在为缓存准备数据时,增加版本并使用新版本保存新数据,而不是在 apc 中更改版本。

    【讨论】:

      猜你喜欢
      • 2013-01-31
      • 1970-01-01
      • 2022-11-10
      • 2015-04-01
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      相关资源
      最近更新 更多