gongmingbin
2017-04-16 12:51 阅读 1.1k

使用redis如何将多个MySQL表中的数据整合在一个zset中,作为一个timeline?

原先用户产生的数据放在不同的表中,例如帖子放在post中,收藏放在favorite表中,现在需要将用户这些不同的行为按时间的倒序显示在他的粉丝的首页中。打算用redis的zset来做。想到2种办法:
1. 使用表名:表id作为zset中的key,例如帖子id为122的帖子就是就是post:122,从redis中取出数据之后再spit开来得到是哪个表的哪条数据。
2. 对于用户所有的行为添加总表,例如timeline,timeline中再通过type和target_id两个字段关联到具体的post。
1的做法可能没有中间层可能性能更好?但是没有引入timeline可能不便于日后扩展?
像知乎,新浪微博,Facebook,Twitter他们有是怎么做的呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

相关推荐