一、概述
书籍系统框架如图:
文件内容持续更新在GitHub上,可自行查看。
本篇主要是介绍:评论和阅读量中的阅读量统计
二、阅读量
思路
1.通过网页的访问次数来决定;
2.因为次数变化频繁,考虑使用redis做递增,再在某一时间点更新到数据库;
3.防止恶意刷流量,需要有个拦截器,同一个ip在一段时间内不计入次数;
代码
1.拦截器(中间件): 在Expire时间段内不计入次数,使用redis分布式锁进行判定,符合要求的相应文章阅读量则加1
traffic_statistics_middleware.go
1 | golang复制代码package Middlewares |
2.获取访问统计信息:所有访问量都从redis中获取。
ps: 这里我煞笔了,我一开始设想还统计某书某一章的阅读量,其实发现没啥大用,还多做了一层统计。–!
get_traffic_statistic_handler.go
1 | golang复制代码package action |
3.定时让redis和数据库交换数据:使用”github.com/robfig/cron”做定时任务.
cron.go
1 | golang复制代码package Utils |
4.结果展示
三、Tips
最近工作中忙了起来,更新可能会比之前慢一些,请多多包涵。
本文转载自: 掘金