我正在寻找一种简单的方法来存储和检索计数,无论用户多次查看唯一的帖子/页面。事后/ 1帖子/ 2。我也对帖子的总观看次数感兴趣。
我认为我应该如何实施:
对于有几行的小型应用程序是可以的。但我预计很多不同的用户每天都会阅读不同的帖子。因此,userpostview表将远大于用户表或post表的表。从长远来看,我相信这将是一个性能问题,对吗?例如,连续调用计数可能会减慢读取速度。我想知道在这种情况下缓存计数是否理想。或者是否应该有一个单独的表来保存增量计数器?
我正在使用带有sqlalchemy后端的烧瓶来postgresql。这还够吗?
然而,在做了一些研究后,我看到了这个:
https://www.youtube.com/watch?v=G-lGCC4KKok
http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html
我应该“假装”柜台吗?有更好的方法吗? 欢迎任何更好或改进的建议。
提前致谢。
答案 0 :(得分:1)
你是logging user interactions with your application吗?
记录可以是存储此类数据的好方法。只需在Flask应用程序中设置一个简单的记录器,每次用户加载帖子页面时都会创建一个日志。将user_id,post_id和timestamp保存到日志文件中。 (注意:如果您担心日志文件过大,可以configure the logger to start a new file every day)。
设置日志记录后,您可以使用实用程序来解析日志,并为您提供汇总结果,例如您要求的结果。或者您甚至可以使用Python解析日志并运行自定义"查询"。
我建议使用ELK stack。 Logstash,Elasticsearch和Kibana是免费的开源项目。在一小时内,您就可以获得用户网站上活动的精美图表和图表。