Redis®*: 技術的検証

このドキュメントはユーザーをリアルタイムでランク付けするガイドの一部です。完全なガイドはこちらからご覧いただけます:Redisを使用して2百万ユーザーをスコアでリアルタイムにランク付けする方法を学ぶ

👋 Stackheroのドキュメントへようこそ!

Stackheroは、数多くの利点を提供する、すぐに使えるRedisクラウドソリューションを提供しています。

  • Redis Commander Web 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 GUIRedis 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

このアプローチは効率的で、高性能なリアルタイムランキングに完全に適しています。