Redis®*: 技術的検証
このドキュメントはユーザーをリアルタイムでランク付けするガイドの一部です。完全なガイドはこちらからご覧いただけます:Redisを使用して2百万ユーザーをスコアでリアルタイムにランク付けする方法を学ぶ。
👋 Stackhero ドキュメントへようこそ!
Stackhero では、すぐに使える Redis cloud ソリューションをご提供しています。主な特長は以下の通りです:
Redis CommanderWeb UI を標準搭載。- メッセージサイズ・転送量が無制限。
- ワンクリックで簡単にアップデート可能。
- プライベートかつ専用インフラによる最適なパフォーマンスと強固なセキュリティ。
時間を節約し、運用をシンプルに:Stackhero の Redis cloud hosting ソリューションは、わずか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
このアプローチは効率的で、高性能なリアルタイムランキングに完全に適しています。