暗黑程序员 2018-09-25 02:22 采纳率: 0%
浏览 888
已结题

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

数据库设计

简介:

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

前提:

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币就搞定了?感觉你们老板好抠啊。

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配