我有一个Web应用程序,需要跟踪“最受欢迎”(访问最多)的文章。该应用程序中的大多数页面(包括文章页面)在侧边栏中显示“最受欢迎”列表,因此将非常频繁地检索此列表。另一方面,文章也经常被访问(大约1/2的页面访问是对文章页面的访问)。
跟踪访问并选择N个访问量最高的文章的最佳方法是什么?据我了解,应该是一个并发的地图articleId-> visitCount,它按值(visitCounts)排序,在这里我可以快速(并且线程安全地)增加visitCount并期望地图重新排序。
最佳答案
对于Web应用程序,最好的存储位置是在数据库中。创建一个数据库,其中包含商品ID字段和访问次数字段。通过访问次数为表格编制索引。每当查看文章时,添加记录或增加现有记录。当您需要查看最受欢迎的列表时,只需查询表即可。
数据库通常是Web应用程序中数据存储位置的最佳答案。
在这种情况下,数据库将根据访问次数为表建立索引。这使插入和更新的速度变慢了一些,但是数据库是设计用来完成这项工作的,因此不会太糟。由于维护了索引,因此此数据的检索将始终非常快。