###树洞网热门文章实现
最近因为芒果台的一部电视剧,[树洞网](https://shudong.21du.cn) 突然小火了一把,访问量翻了几倍,于是打算增加点新功能。
####热门文章
首先定义热门一般通过访问量、点赞👍数据、评论数几个维护计算一个值。
1)通过数据库查询实现,配合缓存。
一直不喜欢这个方式,主要是数据一多,查询相当慢。由于树洞网支持因为新浪mysql太贵,同时为了方便迁移。一直是采用的文本文件存储,所以这个方式行不通。
2)通过redis、memercache进行访问计数。然后算出日榜、周榜、月榜等
改动太大。感觉需要实现的东西太多。
3)Nginx日志
我觉得我还是太天才(nc),nginx access日志有现成的 访问记录、评论记录、投票记录。
写个python脚本 稍微加工分析下,各种榜单就出来了。再配合cron定时任务。perfect
于是树洞的热榜就诞生了,可以体验下 ,看看大家在树洞都关注什么htts://shudong.21du.cn/popular
####链接encode
每篇树洞的ID都是数字自增的,url也是通过id直接访问,看了后台的访问日志,网站应该都被趴了好多遍。bytes is easy for copy,没办法。
想了下,对访问ip频率限制,总感觉有误伤,体验不好。简单点提高点难度,对ID值进行hash ,这样爬站是不是比以前麻烦了。
新发布的树洞url 不再使用树洞ID访问了。
This done。