新浪微博「点赞功能」数据库如何设计的

新浪微博「点赞功能」数据库如何设计的,第1张

对于第一个问题,设计一个schema->(messageID,likedCount),记录每条微博的点赞数。messageID是微博的编号,likedCount是该微博的点赞人数。但是这里有两个问题需要解决,第一是并发,第二是数据量。

每条微博都有可能有很多人同时点赞,为了保证点赞人数精确就需要保证likedCount是原子 *** 作,这个可以由应用程序来实现,也可以用redis的事务来实现(如果redis有事务机制或者自增功能的话),但是我觉得为了性能考虑,也可以不用实现原子 *** 作,具体原因就不展开了。

每天都上亿可能更多的微博内容产生,这样就会有上亿个新的(messageID,likedCount)生成,这样的数据量是比较大的,单机数据库比较难提供高效的服务,所以需要采取sharding的功能(有时候也叫分表分库),可能根据messageID把这些schema分散到十个或者更多的shards上(据说,sina微博有600个节点,如何三个节点组成一个shard,就有200个shards),这样每个shard处理的请求就只有原来的十分之一,从而就能提高服务的性能。

关于点赞人列表的设计,一般来说,可能想到的schema是(messageID,userID),但是这样的设计有一个小问题,就是有些大发的微博可能会得到几十万的点赞,这样就会产生几十万个条数据,这样数据有点多,读取起来可能也慢。所以可以用这样一个schema(messageID,partID,userIDs),让一个messageID对于多个userID,同时比对应太多的userID,所以加入一个新的partID,一个part存1000个userID,这样几十万个点赞,只需要存几百条数据。这样做还有一个好处,用户点赞人时的,一般都不是完全显示所有点赞人,而是一批一批显示,这样可以一次只读一条数据,就可显示一批点赞用户信息。

有以下原因:
1、微博里别人对微博条文进行点赞时,可能是因为别人点赞只是对此条微博下面的评论进行了点赞,而并未对此条微博进行点赞,所以,在显示列表上并不会出现别人的点赞记录。
2、还有可能的原因是因为网络延迟、卡顿导致数据传输过慢,导致微博在列表中的显示不及时,从而看不到他人的点赞记录。
3、微博点赞数有时间限制及次数限制,在规定的时间里有固定的点赞数,超过指定的点赞数之后就不再显示额外的点赞数,但过一段时间之后,又可以进行重新累计点赞了。
4、还有可能是手机系统出现错误,文件错误以及微博远程服务器崩溃等原因,只不过该原因产生上述的情况较小。

优信任务微博点赞,刷单被骗需要通过报警的形式来处理。需要按照以下三个步骤来完成刷单被骗的解决事宜。

首先优信任务微博点赞,刷单被骗需要立即向派出所报案,提供兼职工作人员的对接信息。

其次是提供刷单的平台,还有兼职的介绍人身份来核实具体的事宜。

再者是警察会负责追回被诈骗的款项,还会对当时人做思想开导教育,告知防止诈骗的技巧。


优信任务微博点赞,刷单被骗报警的注意事项:

1、需要提供被骗的线索。

2、需要提供被骗的平台信息。

3、需要提供兼职的介绍人信息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10536871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存