Redis®*: 技術的検証
このドキュメントはユーザーをリアルタイムでランク付けするガイドの一部です。完全なガイドはこちらからご覧いただけます:Redisを使用して2百万ユーザーをスコアでリアルタイムにランク付けする方法を学ぶ。
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供する、すぐに使えるRedisクラウドソリューションを提供しています。
Redis CommanderWeb UIを含む。- メッセージサイズと転送が無制限。
- ワンクリックで簡単にアップデート。
- プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ。
時間を節約し、生活を簡素化:StackheroのRedisクラウドホスティングソリューションを試すのに5分しかかかりません!
Sorted setsはキーとスコアを組み合わせます。私たちの場合、キーはユーザーIDで、スコアはユーザーのポイントを表します。
StackheroでRedisサービスを開始することから始めました。このサービスは最新の安定版でわずか2分で稼働し、時間単位の請求を提供し、便利なWeb GUIであるRedis Commanderを備えています。このインターフェースを使用してコンセプトを検証しました。
以下のようにサンプルIDとスコアを持つ3人のユーザーを追加しました:
| ユーザー名 | スコア | | - | - | | userId1 | 11 | | userId2 | 54 | | userId3 | 24 |
これらのユーザーは、以下のRedisコマンドを使用してusersScoresというsorted setに追加されました:
ZADD usersScores 11 "userId1"
ZADD usersScores 54 "userId2"
ZADD usersScores 24 "userId3"
Redis Commander, Stackheroで提供されるRedisインスタンスのWeb GUI
次に、userId1のスコアを取得しました:
ZSCORE usersScores "userId1"
> 11
これにより、userId1のスコアが確かに11であることが確認されました。その後、userId1のランクを確認しました:
ZREVRANK usersScores "userId1"
> 2
ランクは0から始まることを覚えておいてください。これは、ランクが次のようになることを意味します:
| ユーザー名 | スコア | ランク | | - | - | - | | userId1 | 11 | 2 | | userId2 | 54 | 0 | | userId3 | 24 | 1 |
ZREVRANKコマンドは2を返し、これはuserId1に対して期待していた結果です。
トップエントリーを取得することもできます。例えば、最初の2人のユーザー(ランク0からランク1まで)を取得するには、次のように実行します:
ZREVRANGE usersScores 0 1 WITHSCORES
> 1) userId2
> 2) 54
> 3) userId3
> 4) 24
トップ100ユーザーを取得するには、単に次のように実行します:
ZREVRANGE usersScores 0 99 WITHSCORES
このアプローチは効率的で、高性能なリアルタイムランキングに完全に適しています。