Stack Overflow如何实现缓存?

C g*_*ics 11 performance caching cdn google-cdn

不确定Stack Overflow是否使用缓存来提高其页面的加载速度,但如果有,它已经做得很好.有许多组件需要更新.我在这张图片中看到每一秒都有许多要更新的组件.Stack Overflow如何完美地完成它?在此输入图像描述

And*_*ndy 5

在这个答案中,对Meta.SE的回答更为全面.然而,亮点是:

  • 基本上所有内容都被缓存,尤其是为匿名用户提供的所有内容.
  • 他们使用具有96 GB Ram的Redis服务器.此服务器保留最近设置和读取值的"L1缓存".在将它们发送到Redis之前压缩这些值.他们还使用IIS的输出缓存
  • 每个站点有3种类型的缓存:
    • "本地"(用户会话,查看计数等)
    • "网站"(热门问题ID,用户接受率)
    • "全局"(用户收件箱,API配额)

关于高可伸缩性的更多细节,尽管这已经有近5年的历史了.有一篇新文章(自2014年起)提到还涉及两个额外级别的缓存:

  • SQL Server(整个数据库位于内存中).截至2013年,数据库服务器具有384 GB的内存
  • SSD(只有当SQL服务器缓存正在升温时才会命中...不是我认为"缓存"的东西,但在文章中提到过).