腾讯二面的场景题,设计微信运动的排行榜,使用 Redis 的 Zset 数据结构来实现。 下面是我自己的分析,欢迎交流和补充,你提的更多问题,我会添加到文章中,提供给大家去思考。 需求分析: 1.存储所有用户的微信步数,使用什么结构,key value 分别是啥? 因为要存储每一天的数据,key 可以是:业务名称加上日期,value 是用户的 ID、score 就是对应的步数。 2.不同用户有不同的好友,每个人要单独实现一个排行榜吗? 不用,只需要维护一个排行榜,每一个用户都有自己的好友列表,可以用 Set 来存储,拿到好友列表之后,通过 ZScore 拿到好友 ID 的步数,排序之后返回给前...