我如何以正确的方式使缓存失效?

我有一个非常具体的缓存情况。 我们使用多种缓存解决方案,并且我想知道什么是在用户操作中使缓存失效的最佳解决方案。

缓存就像这样

  • 第一层:CDN将整个页面缓存为注销用户的HTML

  • 第二层:用于注销用户的memcached中的完整页面缓存我有第二层的原因是为了响应边缘,有时不是所有边缘都被缓存,所以我想从缓存中“回答”边缘。

  • 第三层:为登录用户缓存HTML partials和数据库数据。

  • 我的问题是,我的失效过程很大程度上基于第三层,而且我没有足够好地回答第二层和第一层。

    我的问题是:什么是最好的方式来从一个缓存关键字,完全无效的URL缓存完全没有耦合的URL? 例如,如果我有旅行计划,在旅行计划中有评论,我想在用户评论新评论时使整个页面旅程计划URL无效。

    评论模型没有URL,“父”也没有URL,同样的评论也会在城市页面中显示,所以它是完全可重用的对象和部分。


    我在37signals博客上阅读David Heinemeier Hansson的一些博客帖子。

    他们承担的问题是缓存页面上的所有不同对象,然后使用CSS和JS来定制视图。

  • DHH在第一篇文章中介绍了他们用于使Basecamp的新界面变得如此快速的技术。
  • 在第二篇文章中,他介绍了基于密钥的失效是如何工作的。
  • 它可能无法解决你的问题,但与你给的描述我认为它可能至少会给你一些提示。

    链接地址: http://www.djcxy.com/p/10581.html

    上一篇: How can I invalidate cache the right way?

    下一篇: Eclipse CDT: 'can't find a source file' while debugging