暗黑程序员 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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器