我的symfony应用程序在线有大约500名用户,所有页面上都有一些文章列表。我将查询和结果存储在APC中,管理员在一些数据更改时手动删除。这是问题所在:
如果我是正确的,如果我的500个用户中的每个用户在删除缓存时刷新页面并尝试更新它(通过首先查询到数据库),其他499在缓存完成之前会损害数据库。
如何避免这种情况? APC中是否存在阻止它的任何选项,或者我需要手动管理它?如果尚未准备就绪,最好的选择应该是提供旧缓存。
答案 0 :(得分:0)
不幸的是,我担心没有开箱即用的解决方案。 如果你看一下Memcached Bundle,他们会实现一个解决方案来避免这个问题:enter link description here
也许你可以激励自己编写解决方案。
答案 1 :(得分:0)
如果所有用户都通用,则可以通过后台脚本为缓存准备数据并通过cron执行。此外,还可以为此数据的缓存键添加版本,也可以在apc中存储版本。准备缓存数据,增加版本并使用新版本保存新数据,而不是更改apc。
中的版本