第8章通用计数系统——8.1 计数的常见用途

第8章通用计数系统——8.1 计数的常见用途
John Yaml本章讲解一个相对简单但又很常见的服务:计数服务。本章的内容组织结构如下。
- 8.1节介绍计数的常见用途。
- 8.2节针对计数的数据特点,做出存储选型。
- 8.3节正式介绍海量计数服务设计,也会对存储空间进行优化,对如何应对高并发访问进行深入探讨。
本章关键词:存储选型、内存优化、冷热分离、异步、聚合。
8.1 计数的常见用途
具有累计性质的计数数据广泛存在于各种用户应用中,比如:
- 用户发布的每个作品,有点赞数、分享数、评论数、转发数、收藏数;
- 用户主页,有关注数、粉丝数、作品数、热度等;
- 评论列表中的每条评论,有点赞数、点踩数。
上述1和3属于作品维度的计数(评论也可以被认为是一种作品),在相当程度上反映了一个作品的受欢迎程度;而2属于用户维度的计数,可以直观地展示用户的活跃度与影响力。示例如图8-1所示 。
在进行各类计数数据的展示时,初学者非常容易直白地认为数据的统计计数应该来源于数据记录本身。比如点赞数可以从作品点赞记录数据中统计总数得到,评论数可以从作品评论记录中统计总数得到……实际上,这样的做法有极大的并发访问风险。更安全、可靠的做法是将数据本身与数据记录解耦,将计数数据独立出来作为一个服务。而在本章中, 我们就一起来学习计数服务。