当前位置:首页 » 硬盘大全 » 微博百亿缓存服务怎么设计
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

微博百亿缓存服务怎么设计

发布时间: 2023-06-10 18:50:06

‘壹’ 新浪微博“点赞功能”数据库如何设计的

对于第一个问题,设计一个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、在手机中找到微博App,点击进入。
2、点击下方的视频图标,进入到微博视频界面。
3、点击右上方的向下箭头的下载按钮,即可看到已经下载视频的缓存了。
下载微博视频的方法:1、在微博App中找到想要下载的视频,点击右上角的三个点按钮。
2、在唤出的功能列表中点击复制链接,然后打开手机浏览器。
3、把复制的链接复制到手机浏览器中,然后点击播放。
4、在视频的右侧就可以看到下载按钮,如果没有,可以长按视频,会弹出下载窗口。
关闭微博群消息提醒的方法:1、在手机中找到微博App,点击进入。
2、点击下方的消息,然后进入到消息界面。
3、点击右上角的设置,点击聊天设置,然后点击群消息,将群消息提醒关闭即可。
如果想与某个好友发起聊天,除了点击TA的聊天界面发送消息外,还可以点击消息的设置,点击发起聊天即可。
更多关于微博的离线缓存在哪里,进入:https://m.abcgonglue.com/ask/ba35d21616109011.html?zd查看更多内容