我正在网站上工作。我想获得有关设计的反馈。网站功能类似于Reddit,ProductHunt等(即基于投票)。这是概述 1.后端服务从Web获取帖子并存储到DB中。 2.帖子显示在网站上(顶部,新)。 3.顶部显示基于排名(投票,时间因素)的网站。 4.在滚动时,用户可以看到更多帖子
设计
数据库表:帖子,用户,投票
后端服务: 后端服务定期从Web中提取帖子并存储到DB(帖子表)中。
网站: 当用户访问网站用户看到热门帖子。根据要求,网站代码查询数据库,该数据库返回基于时间和投票排名的链接。当使用投票特定帖子时,网站代码将其添加到数据库。网站允许登录并在User表中存储用户信息。
问题: 我应该考虑使用Redis缓存而不是查询数据库来获取每个请求的排名帖子吗?如果是,那么应该将哪些内容存储到缓存中以及更新缓存的逻辑应该是什么?
如果我最终使用缓存,那么缓存应该有两个条目。 1.排名帖子1.新职位。对于排名帖子应该定期后端服务更新缓存?对于新帖子,我应该在每次从网络上发布新帖子时使缓存失效吗?
如果我使用缓存路由,如何处理无限滚动?示例:用户根据排名查看帖子。用户在15分钟后滚动新帖子。到那个时候,排名可能会发生变化。
感谢任何反馈/帮助!
答案 0 :(得分:0)
我认为Redis会在性能方面给你很多帮助,你可以将它用作缓存,也可以用作真正的数据库(它拥有你需要的一切 - 持久性,备份,主从复制,服务器端集群) 。
如果要将其用作缓存,可以执行以下操作: