我正在寻找一种简单的方法来存储和检索一个计数,不管用户多次查看一个唯一的帖子/页面。事后/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
我应该“假装”柜台吗?有没有更好的方法?欢迎任何更好或更好的建议。
提前谢谢。
发布于 2015-05-23 02:50:45
你是记录用户与应用程序的交互吗
日志记录可以是这样存储数据的好方法。只需在您的Flask应用程序中设置一个简单的记录器,每次用户加载post页面时都会创建一个日志。将user_id、post_id和时间戳保存到日志文件中。(注意:如果您担心日志文件变得太大,可以使用配置记录器以每天启动一个新文件)。
设置日志之后,可以使用实用程序解析日志,并向您提供与您所要求的结果相同的聚合结果。或者您甚至可以使用Python解析日志并运行自定义的“查询”。
我建议使用麋鹿堆。Logstash、Elasticsearch和Kibana是免费的开源项目。在一个小时内,您就可以在您的网站上获得用户活动的漂亮图表。
https://stackoverflow.com/questions/30408149
复制相似问题