我在面试中遇到了这个问题:
对于一个高流量的网站,有一个方法(比如getItems()),该方法经常被调用。为了避免每次都去访问数据库,结果被缓存起来。然而,成千上万的用户可能会同时尝试访问缓存,所以锁定资源不是一个好主意,因为如果缓存已过期,将会向数据库发出调用,并且所有用户都需要等待数据库响应。那么如何处理这种情况,使得用户无需等待呢?
我认为这对于大多数高流量网站来说是很常见的一种情况,但我没有处理这些问题的经验——我有处理数百万条记录的经验,但没有处理数百万用户的经验。
我该如何学习高流量网站使用的基础知识,以便在未来的面试中更加自信呢?通常,我会启动一个旁边的项目来学习一些新技术,但是在旁边建立一个高流量的网站是不可能的 :)