这个Redis排序集中有哪些顶级电影?

时间:2013-05-02 21:38:24

标签: redis

我从这里下载了来自IMDB(电影列表)的电影:http://www.imdb.com/interfaces

我想计算一下给定电影在Redis排序集的帮助下出现在列表中的频率,但我对结果感到有点困惑:

redis 127.0.0.1:6379> zrangebyscore 'movies:title' 5000 +inf WITHSCORES
 1) "Countdown"
 2) "5254"
 3) "The Bold and the Beautiful"
 4) "5322"
 5) "Days of Our Lives"
 6) "5451"
 7) "Neighbours"
 8) "6442"
 9) "The New Price Is Right"
10) "7633"
11) "Coronation Street"
12) "8097"

我希望这部电影最常出现在最顶端。另外,我对比分感到有点困惑。这5k,6k,7k是什么意思?

我用于实验的脚本是这样的Rake任务:

  task :import do
    file = File.new(ENV['file'])
    redis = Redis.new
    file.each_line do |l|
      if l =~ /^"(.*)"/
        puts $1
        redis.zincrby 'movies:title', 1, $1
      end
    end

1 个答案:

答案 0 :(得分:1)

您可能想尝试使用zrevrangebyscore而不是zrangebyscore。

语法:

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

例如,在您的情况下:

zrangebyscore 'movies:title' +inf 5000 WITHSCORES

Reference