大型新闻网站点击量的技术方案咨询
- - mysqlops如何记录用户发表的文章的点击量. 当并发非常小的时候可以直接存在这个文章表里面,叫一个click_count,但是如果网站的访问量很高,那这样数据库肯定要累死,各位大牛有什么好的解决办法么. 我们只讨论访问量很高的情况,例如:每天1亿及以上PV的新闻网站,建议做法可以分为2种方式:. 1.使用缓存系统,比如Redis非常适合做计数器,异步的方式同步到MySQL数据库 或者Redis直接持久化的方式;.
网友提问:
1.问题主题
如何记录用户发表的文章的点击量
2.问题补充描述
当并发非常小的时候可以直接存在这个文章表里面,叫一个click_count,但是如果网站的访问量很高,那这样数据库肯定要累死,各位大牛有什么好的解决办法么?
mysqlops回答:
我们只讨论访问量很高的情况,例如:每天1亿及以上PV的新闻网站,建议做法可以分为2种方式:
1.使用缓存系统,比如Redis非常适合做计数器,异步的方式同步到MySQL数据库 或者Redis直接持久化的方式;
2.变相直接更新数据库的方式,每个应用程序服务都有一个自己内部的全局计数器,默认每隔10秒或者缓存计数达到10则一次性更新同步到数据库中,也即采用延迟非实时更新的方式,同时把计数器单独保存到一张表中,设计成父子表的模式;
上述2种方式作者都曾实施过,典型的场景是微博类的统计量太大,故采用第一种方式;阿里旺旺的新闻网站则采用第二种方式。