2

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

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

redis 127.0.0.1:6379> zrangebyscore 'movies:title' 5000 +inf WITHSCORES
 1)“倒计时”
 2) “5254”
 3)“大胆而美丽”
 4) “5322”
 5)“我们的日子”
 6) “5451”
 7)“邻居”
 8) “6442”
 9)“新价格是对的”
10) “7633”
11)“加冕街”
12) “8097”

我想要最常出现在顶部的电影。另外,我对分数有点困惑。这个5k、6k、7k是什么意思?

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

  任务:导入做
    文件 = File.new(ENV['file'])
    redis = Redis.new
    file.each_line 做 |l|
      如果 l =~ /^"(.*)"/
        投入 1 美元
        redis.zincrby 'movies:title', 1, $1
      结尾
    结尾
4

1 回答 1

1

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

句法:

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

例如,在您的情况下:

zrangebyscore 'movies:title' +inf 5000 WITHSCORES

参考

于 2013-05-10T18:39:51.297 回答