关于点赞模块在高并发下的优化处理,求方案

2020-08-11 14:57:26 +08:00
 totoro52

目前我涉及到做点赞这块,起初的设计是直接落库,用户的点赞和取消点赞直接对记录进行加减,这样的方案似乎很简单看起来也没啥问题,但是一旦流量多了起来,数据库肯定扛不住这么频繁的读写。

我参考了一些网上教程,基本都是采用 redis 异步入库,就是点赞和取消都交给 redis,redis 记录了点赞人和被点赞人,同时在另外记录点赞总数,然后通过定时任务进行异步落库并删除 redis 中的指定数据。

但是现在新的问题来了,当我要查询某个文章的点赞总数的时候,怎么保证数据的一致性呢,岂不是查询的总数的时候需要 mysql+redis = 总数才能保证唯一性,因为 redis 入库后记录就被删除了,防止内存庞大,而且 redis 并不会做持久化,麻烦做过这方面的大牛给我指点指点

8152 次点击
所在节点    Redis
29 条回复
microget
2020-08-11 17:43:53 +08:00
产品经理的 KPI 吧
swulling
2020-08-11 17:46:06 +08:00
其实以你们产品的并发,根本就用不上 redis
wweir
2020-08-11 17:56:08 +08:00
既要实时又要高并发,单点可以实现,不过说起来很多业务不敢这么玩
totoro52
2020-08-11 18:20:41 +08:00
哈哈哈 谢谢各位的回复,我懂了,我明天 TM 就把产品经理杀了祭天
locoz
2020-08-11 18:21:00 +08:00
消息队列慢慢入库+伪实时数量?
1018ji
2020-08-11 18:21:20 +08:00
实时点赞,这真是个牛逼的需求
Leigg
2020-08-11 18:26:16 +08:00
实时点赞真没必要,非要解决的话上数据放内存里。
kisshere
2020-08-11 22:30:25 +08:00
都能把 MySQL 的 update+1 给写崩溃了,你这站的访问量也太大了吧,如果真有那么大,别拿 MySQL 存点赞数,拿其他硬盘型的 nosql 存
CoderGeek
2020-08-13 09:50:26 +08:00
减少数据库更新 第一次从库加载在到 redis 做自增 一段时间 定期刷库 不好吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697374

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX