我有一个非常具体的缓存情况。我们使用多种解决方案进行缓存,我想知道在用户操作上使缓存无效的最佳解决方案是什么。
缓存是这样的
第一层:CDN将整个页面缓存为已注销用户的HTML
第二层:已注销用户的memcached中的完整页面缓存 我有第二层的原因是响应边缘,有时不是所有边都被缓存,所以我也想从缓存中“回答”边缘。
第三层:为登录用户缓存HTML部分和数据库数据。
我的问题是我的失效过程现在非常基于第三层,而且我没有足够好地回答第二层和第一层。
我的问题是:从完全没有与URL耦合的缓存密钥使完整URL上的缓存无效的最佳方法是什么?例如,如果我有旅行计划,在旅行计划中有评论,我想在用户评论新评论时使整页旅行计划URL无效。
评论模型没有URL,“父”也没有URL,同样的评论也会在城市页面中出现,所以它完全是一个可重用的对象而且是部分的。
答案 0 :(得分:3)
我在37signals blog上阅读了David Heinemeier Hansson的一些博文。
他们对问题的看法是缓存页面上的所有不同对象,然后使用CSS和JS来自定义视图。
它可能无法解决您的问题,但根据您提供的说明,我认为它至少可以为您提供一些提示。