注文したセットがあります-スコアを付けて、gem'redis'を介してredisデータベースに追加したアイテムは次のようになります:
Item.each { |item|
$redis.zadd("scores", item.score, item.id)
}
そして、タグIDに基づくキーを持つアイテムでいっぱいのセット。
Tag.each { |tag|
tag.items.each { |item|
$redis.sadd("tag_#{tag.id}", item.id)
}
}
スコアがx以上のすべてのアイテムを取得し、それを特定のタグを持つすべてのアイテムと交差させようとしています。結果を並べ替える必要はありません。そもそも順序集合を使用する必要があるかどうかはわかりませんが、結果を保存および取得するための効率的な方法のようです。
範囲とセットのRedisとの共通部分を見つけるための最良の方法は何ですか?