目前我涉及到做点赞这块,起初的设计是直接落库,用户的点赞和取消点赞直接对记录进行加减,这样的方案似乎很简单看起来也没啥问题,但是一旦流量多了起来,数据库肯定扛不住这么频繁的读写。
我参考了一些网上教程,基本都是采用 redis 异步入库,就是点赞和取消都交给 redis,redis 记录了点赞人和被点赞人,同时在另外记录点赞总数,然后通过定时任务进行异步落库并删除 redis 中的指定数据。
但是现在新的问题来了,当我要查询某个文章的点赞总数的时候,怎么保证数据的一致性呢,岂不是查询的总数的时候需要 mysql+redis = 总数才能保证唯一性,因为 redis 入库后记录就被删除了,防止内存庞大,而且 redis 并不会做持久化,麻烦做过这方面的大牛给我指点指点
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.