亿级点赞系统的设计

数据库表:

用户表(id, username, created_time)

视频表(id, userID, created_time)

点赞表(id, userid, videoid, created_time)

点赞计数表(video_id, like_count)

  • 索引优化:针对点赞表的用户id和视频id建立联合索引。
  • 分库分表:对点赞表分库分表。
  • 读写分离:写用于主库,读用于分库。
  • 批量操作:将多个点赞请求合并为批量操作,减少数据库写入次数。
  • 缓存优化:点赞数放在Redis中,对于热门视频可以定时去查询。
  • 异步点赞:把点赞请求放入消息队列中,消费者异步写入数据库。

设计一个游戏排行榜功能,要求能够实时查看自己的排名和全服前几名。

需求分析

  1. 实时查看自己的排名:玩家可以随时查询自己在全服中的排名。
  2. 全服前几名:支持快速查询全服前几名玩家的信息。
  3. 高并发支持:排行榜可能被大量玩家频繁访问,需要保证性能。
  4. 数据一致性:玩家的分数更新后,排行榜需要及时更新。

使用 Redis 的 ZSet 存储排行榜数据,score 作为战力分数,player_id 作为成员。

更新战力分数的时候,直接ZADD添加元素。

查询前几名:zrevrange。

查询自己排名:zreverank

Copyright © 版权信息 all right reserved,powered by aspire-zero and Gitbook该文件修订时间: 2025-03-04 09:28:06

results matching ""

    No results matching ""