Redis®*: 技術的検証

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

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

Stackhero では、すぐに使える Redis cloud ソリューションをご提供しています。主な特長は以下の通りです:

  • Redis Commander Web UI を標準搭載。
  • メッセージサイズ・転送量が無制限
  • ワンクリックで簡単にアップデート可能。
  • プライベートかつ専用インフラによる最適なパフォーマンスと強固なセキュリティ

時間を節約し、運用をシンプルに:Stackhero の Redis cloud hosting ソリューションは、わずか5分でお試しいただけます!

Sorted setsはキーとスコアを組み合わせます。私たちの場合、キーはユーザーIDで、スコアはユーザーのポイントを表します。

StackheroでRedisサービスを開始することから始めました。このサービスは最新の安定版でわずか2分で稼働し、時間単位の請求を提供し、便利なWeb GUIであるRedis Commanderを備えています。このインターフェースを使用してコンセプトを検証しました。

以下のようにサンプルIDとスコアを持つ3人のユーザーを追加しました:

ユーザー名スコア
userId111
userId254
userId324

これらのユーザーは、以下の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から始まることを覚えておいてください。これは、ランクが次のようになることを意味します:

ユーザー名スコアランク
userId1112
userId2540
userId3241

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

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