ruby字符串eval
[转载][ruby C扩展]Writing Ruby Extensions in C - Part 1, Project Setup

基于redis做打败全国用户排名

jack posted @ 2013年11月11日 13:45 in ruby with tags ruby redis , 1674 阅读

360引领了开机速度,打败全国百分之多少的用户,很多产品纷纷开始模仿。基于redis可以快速构建一个性能优良的排名系统,假设用户每次操作一个url后获得一个分数,计算得到该分数在所有url中的排名。由于所有url可能是非常庞大的量级,用树的结构进行插入,排序,查询是效率较高的操作,基于redis的zset可以快速构建原型。

redis.zadd("sitescore",url)           # O(1)
total = redis.zcount("sitescore")     # O(1)
rank = redis.zrank("sitescore",url)   # O(log(n))

puts "打败了全国#{(rank * 100.0 / total).round(2)}%的网站"

简单测试,在10万级别的样本中,0.2秒左右可以得到打败全国网站的百分比

blog comments powered by Disqus