Redisにはセット型にスコアと呼ばれる数値を付加することができるソート済みセット型という型がサポートされています。オンラインゲームの得点などに利用することができます。
全てのコマンドについては説明できませんのが、基本的にはRedisコマンドを小文字にしたものがメソッドとして提供されています。ソート済み型のRedisコマンドの詳細は以下ドキュメントを参考にしてください。
http://redis.shibu.jp/commandreference/sortedsets.html
ソート済みセット型でランクを算出する
データの追加はzaddメソッドを使用します。引数にキー、スコア、値を指定します。
サンプルを見てみましょう。ユーザーのスコアを登録するサンプルです。最後にユーザーのランクをzrankで取得します。
# ユーザーとスコアを登録 r.zadd('users', 100, 'Yamada') r.zadd('users', 105, 'Tanaka') r.zadd('users', 95, 'Suzuki') r.zadd('users', 80, 'Sato') # 特定ユーザーのスコアを取得 r.zscore('users', 'Yamada') # 100 # 特定ユーザーのランクを取得 r.zrank('users', 'Yamada') # 2
スコアに基づいたユーザーランクを簡単に算出することができます。