参考 ruby-china 的源码,看到点击数是用redis+redis-objects实现的。
redis+redis-objects
但没有看到持久化到MySQL/PostgreSQL的代码,如果我需要后台管理做统计(比如:每个文章每天的点击量,每天点击量最多的 100 篇文章等等),需一个策略来把点击数更新到 MySQL 中。
MySQL/PostgreSQL
目前能想到的是在更新 Redis 的点击数的策略:
大家有没有更好的最佳实践?
时间相关的变量适合存 time series db,比如 influxdb
也许你可以不要只是把点击数当成文章的一个字段,这样信息就丢失了 你可以把每个点击事件都入库,from_ip,article_id,click_time 之类的都记下 再根据统计维度的需求,每天汇总
谢谢,这也是一个思路,这样做也可以用上队列服务,在加入队列的同时,用 redis 累计计数器。
最大的好处,是有数据沉淀,你以后可以统计用户的地区,阅读时段等等,dashboard 看起来又酷炫,还能吹一波“是大数据公司”
你的需求是需要记录每一次点击,才能统计出来
如果没那个实力存储和维护这么多点击数据,你可以用 Google 分析之类的三方工具
谢谢,目前是用的 google 分析,但只是用的基本的功能,我研究一下怎样利用 Google 分析来实现这样的需求。
google analytics 或者 td-agent + google bigquery 自己定义字段来统计