具有历史记录的唯一视图计数

2024-06-16 14:00:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种简单的方法来存储和检索一个用户查看一个独特的帖子/页面多少次的计数。事后/1事后/2。我还对一篇文章的总浏览量感兴趣。你知道吗

我认为我应该如何实现这一点:

  1. 创建包含列(userid、posted、datecreated)的userpostview表
  2. 每次使用userid创建userpostview行,如果记录不存在,则使用posted
  3. 检索userid==X的行总数
  4. 检索postid==Y的行总数

对于一个小规模的应用程序,只有几行是可以的。但我预计,每天阅读不同帖子的用户比例会很高。因此,userpostview表将比user表或post表大得多。从长远来看,我相信这将是一个性能问题,对吗?例如,连续调用counts可以降低读取速度。我想知道在这种情况下缓存计数是否理想。或者应该有一个单独的表来容纳增量计数器?你知道吗

我正在使用flask和postgresql的sqlalchemy后端。这足够吗?你知道吗

然而,在做了一些研究之后,我发现:

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

我应该“假装”柜台吗?有更好的方法吗? 欢迎提出任何更好或改进的建议。你知道吗

提前谢谢。你知道吗


Tags: 方法用户comyoutube文章页面感兴趣帖子
1条回答
网友
1楼 · 发布于 2024-06-16 14:00:55

你是logging user interactions with your application吗?你知道吗

日志记录是存储这样的数据的好方法。只需在Flask应用程序中设置一个简单的记录器,每次用户加载post页面时都会创建一个日志。将user\u id、post\u id和时间戳保存到日志文件中。(注意:如果您担心日志文件太大,可以configure the logger to start a new file every day)。你知道吗

设置日志记录后,可以使用实用程序解析日志,并提供聚合结果,就像您要求的那样。或者您甚至可以用Python解析日志并运行定制的“查询”。你知道吗

我建议使用ELK stack。Logstash、Elasticsearch和Kibana是免费的开源项目。在一个小时内,你就可以在你的网站上看到用户活动的漂亮图表。你知道吗

相关问题 更多 >