Your SlideShare is downloading. ×
0
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
一个Nosql的故事
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

一个Nosql的故事

636

Published on

在 thinkinlamp tdcon 2012

在 thinkinlamp tdcon 2012

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
636
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ⼀一个 NoSQL的故事 @ 唐福林 @ 微博平台架构
  • 2. 插播广告•  新浪微博 –  3.68亿用户(2012Q2财报数字) –  1亿消息/天,峰值>3w/s (2012春节)•  技术部-平台研发 –  tech.weibo.com –  open.weibo.com•  招聘进行中,欢迎投递简历 –  @微博平台架构 –  @唐福林 2
  • 3. 需求 计数器 Counter 3
  • 4. 需求 计数器 Counter 4
  • 5. 需求•  持久计数 –  用户的计数 •  微博数,关注数,粉丝数 etc –  微博的计数 •  转发数,评论数,收藏数 etc•  周期计数 –  微博的每日曝光数 –  链接的每日点击数•  临时计数 –  未读数 –  提醒数 5
  • 6. 需求•  持久计数 –  用户的计数 uid •  微博数 status,关注数,粉丝数 etc –  微博的计数 mid •  转发数 repost,评论数 comment,收藏数 etc•  周期计数 –  微博的每日曝光数 –  链接的每日点击数•  临时计数 –  未读数 –  提醒数 6
  • 7. 阶段划分 •  春秋战国 •  唐宋明清 •  民国共和 7
  • 8. 春秋战国 (1) uid   mid   content   c+me   10503   2578654   Let’s  talk   2009-­‐09-­‐15   1243233955   3587456   about  Lamp!   2009-­‐10-­‐12   •  SELECT count(uid) FROM Status WHERE uid=? 8
  • 9. 春秋战国 (2) uid   status_count   last_+me   10503   12   2010-­‐03-­‐11   1243233955   33   2010-­‐04-­‐12   •  SELECT status_count FROM UserCount WHERE uid=? 9
  • 10. 春秋战国 (3) uid   status_count   last_+me   10503   15   2010-­‐07-­‐18   uid   status_count   last_+me   1243233955   38   2010-­‐08-­‐22   •  SELECT status_count FROM UserCount_hash WHERE uid=? •  SELECT repost_count FROM StatusCount_YYmmdd WHERE mid=? 10
  • 11. 春秋战国 (4) Client    MC      MYSQL   •  mc.get(uid) •  SELECT status_count FROM UserCount_hash WHERE uid=? •  mc.set(uid,count) 11
  • 12. 春秋战国 (5) •  mc.get(uid) batch       insert   •  SELECT status_count FROM UserCount_hash WHERE uid=? •  mc.set(uid,count)  MYSQL   •  count = mc.incr(uid) •  delta = mc.incr(uid.delta) •  if (delta > 100) •  db.set(uid,count) && mc.del(uid.delta) 12
  • 13. 春秋战国 Works ! 13
  • 14. 唐宋明清(1)•  redis.incr(uid + “-status”)•  redis.get(uid + “-status”) 14
  • 15. 唐宋明清(2) status:45   fans:121   aGs:66   comment:12   repost:33   •  redis.hincr(uid,“-status”) •  redis.hget(uid,“-status”) 15
  • 16. 唐宋明清(3) •  redis.hincr(mid, “-comment”) •  redis.hget(mid, “-comment”) 16
  • 17. 唐宋明清(4)•  rediscounter.hincr(mid,“-comment”)•  rediscounter.hget(mid,“-comment”) 17
  • 18. 唐宋明清 Good ! 18
  • 19. 民国共和(1) •  countservice.hincr(mid,“-comment”) •  countservice.hget(mid,“-comment”) 19
  • 20. 民国共和 Great! 20
  • 21. 未来 (1) •  contentservice.set(mid,content) •  contentservice.get(mid) 21
  • 22. 未来 (2) •  listservice.set(uid+"-fans",fans_list) •  listservice.get(uid+"-fans") 22
  • 23. 23

×