点击▲关注 “爪哇笔记” 给公众号标星置顶
更多精彩 第一时间直达
前言
在经历了,缓存、限流、布隆穿透等等一系列加强功能,十万博客基本算是成型,网站上线以后也加入了百度统计来见证十万+ 的整个过程。
但是百度统计并不能对每篇博文进行详细的浏览量统计,如果做一些热点博文排行、48小时排行之类统计,还需要引入浏览量统计功能。
设计
通常情况下,我们只需要每次请求浏览量+1,但是这样真的好吗?或者更直白的讲,真实浏览数准确吗?
UPDATE blog SET views = views+1 WHERE id=?
参考了多个社区博客的设计,因为并不十分清楚其后端实现过程,只能从前端得出以下结论。
慕课网手记:无论是用户登录模式还是用户状态,每次刷新页面浏览数都会 +1。
51CTO博客:无论是用户登录模式还是用户状态,每次刷新页面浏览数都会 +1。
简书:用户登录模式下,无论如何刷新浏览数都不会新增,但是游客状态下每次刷新浏览数都会+1。
博客园:无论是用户登录模式还是用户状态,每次刷新页面浏览数都不变,即使隔天访问,也不变,没细测。
微信公众号:只能是用户登录状态,每次刷新浏览数基本不变,有时候会出现由多变少的情况,不知道大家有没有发现。
CSDN博客:无论是用户登录模式还是用户状态,每次刷新页面浏览数都不变,但是隔天访问,浏览数会+1,没细测。
基于以上社区的数据,直接 Pass 掉前两位,总结了以下几种方案,都是基于缓存标识实现。
如果游客或者登录用户访问,按照 IP + 文章 ID 维度增加浏览数,那局域网中怎么算?
如果是游客访问,按照 IP + 浏览器Session