None-Null 2018-09-25 02:22 采纳率: 0%
浏览 889
已结题

类似微博的关注与推送的项目难点

数据库设计

简介:

本项目是一个视频点播服务端,主要有发视频,关注,点赞,评论,举报,消息推送等难点。

前提:

1、 项目有100万个视频源,1000万的用户量;
2、 使用mysql5.7,单库,无主从;
3、 服务器配置为4核20G内存8G硬盘;
目标:
使用上述的数据库与服务器,实现类似抖音的服务端,推送时并发每秒10000左右。

难点一:

关注、点赞、举报与评论的数据库设计。一千万的用户量,平均有百分之一约10万的用户两两之间进行关注,数据量是100亿,即使使用mysql的分表功能也是非常恐怖的事情。后来决定使用redis的位图功能来存储,每个用户都维护一张位图,需要1000000/(8*1024)=122MB的内存空间,10万的用户就是11920GB的内存。

难点二:

消息推送的数据库设计。当有新视频发布,则向粉丝们推送消息。如果所有的消息存储在一张表中,存储数据直线上升,无法持久,即使分表也难以长久。后来决定使用redis来存储,每个用户维护一个list链表,当用户粉丝数有1万时,就要向1万个链表里循环插入消息,当用户一起上传视频,高并发的时候,redis插入操作会是一个很耗时的事情。
  • 写回答

7条回答 默认 最新

  • threenewbee 2018-09-25 02:24
    关注

    1000万的用户量,难道还请不起一个架构师么?花5C币就搞定了?感觉你们老板好抠啊。

    评论

报告相同问题?