記事のランキングを作成するにあたりRedisを利用しようとしています。
ランキングには総合PVランキングとカテゴリ別PVランキングの二つがあります。
そのため、以下のようにデータを保存する際に、先頭に記事が所属するカテゴリーIDをつけたkeyにしています。
ruby
1REDIS.zincrby "#{@article.category_id}/articles/daily/#{Date.today.to_s}", 1, @article.id
カテゴリランキング生成時は以下のコードで問題なく該当カテゴリだけの記事のscoreが高い順に記事IDが取得出来ています。
ruby
1ids = REDIS.zrevrangebyscore "#{category_id}/articles/daily/#{Date.yesterday.to_s}", "+inf", 0, limit: [0, 20]
しかし、総合ランキング生成時に、以下のコードではそもそもRedis側から記事IDが取得出来ていません。
ruby
1ids = REDIS.zrevrangebyscore "*/articles/daily/#{Date.yesterday.to_s}", "+inf", 0, limit: [0, 20]
イメージとしては、keyの先頭の部分をワイルドカードを使って、"何らかの値がある"という事を表現してカテゴリー関係なく、全ての記事からscoreが高い記事IDを取得したかったのですが・・・。
このように、keyを指定する際に、そこに"何らかの値が入って入ればOK"という事を表現してカテゴリーID関係なく、全ての記事からscoreが高い記事IDを取得したい場合、どうしたら良いでしょうか??
どなたかご教示頂ければ幸いです!

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/23 12:47