Facebook 如何使用 Memcached 每秒处理数十亿请求

Facebook 每秒接收数十亿个请求并在其数据库中存储数万亿个项目。 据他们的团队称,“传统的网络架构”根本无法满足社交网络的需求。 Facebook 使用了一种简单的键值存储,称为 Memcached 和 将其缩放至 每秒高效处理数十亿个请求 涵盖数万亿件物品。 他们指出 2013年 他们的系统是“最大的 memcached 全球安装量”。 如果您想跳过技术部分,请直接跳至 经验教训和总结部分 在最后。 以用户为中心。 任何改变必须 仅有的 影响用户面临或操作的问题。 不要追求完美。 如果这意味着他们可以进一步扩大规模,那么他们也不介意一些用户获取过时的数据。 他们牢记以下假设: 用户阅读的多于写的多。 有多个数据源可供读取。 他们需要几乎立即进行阅读、写作和交流。 它们有 3 个扩展层: 集群、区域和全球。 他们扩大了规模 Memcached 去做这个。 它是 基本键值存储,使用哈希表实现,存储在内存中。它是数据库上的缓存层。 数据库读取比内存读取要昂贵得多。Facebook 的数据库存储了数万亿个项目。 例如,在我开发的一款应用中,1.2MB 的 JSON 响应需要大约 1100 毫秒才能返回。在我安装 Memcached,缓存后仅需200ms即可返回。 Memcached 存储对各种请求的响应。 如果用户请求他们的个人资料信息,并且自上次请求以来没有发生变化,则该请求的响应已存储在 Memcached 中。 它还存储了常见的中间产物,例如 Facebook 机器学习算法的预先计算的结果。 “Memcached […]