Redis®*: Node.jsを使用したRedisコード例

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

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

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

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

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

Redis Commanderでコンセプトを検証した後、実際のコードにRedisを統合する時が来ました。お客様はNode.jsを使用しており、以下はioredisをクライアントとして使用した例です:

const Redis = require('ioredis');

(async () => {
  // Redisの認証情報を設定
  // Stackheroを使用する場合、これらはStackheroダッシュボードで見つけることができます
  const redis = new Redis({
    host: '<redisServerHost>',
    password: '<redisServerPassword>',
    port: <PORT_TLS>, // <PORT_CLEAR>はクリア接続用で、<PORT_TLS>はTLS用です。TLSを使用するべきです。
    tls: {}, // TLSを有効にするために空のオブジェクトを提供
    lazyConnect: true
  });

  // Redisに接続
  await redis.connect();

  // ユーザーを追加
  await redis.zadd('usersScores', 11, 'userId1');
  await redis.zadd('usersScores', 54, 'userId2');
  await redis.zadd('usersScores', 24, 'userId3');

  // userId1のスコアを取得
  const score = await redis.zscore('usersScores', 'userId1');
  console.log('userId1 has ' + score + ' points');

  // userId1のランク位置を取得
  const rankPosition = await redis.zrevrank('usersScores', 'userId1');
  console.log('userId1 is ranked at position ' + rankPosition);

  // Redisから切断
  await redis.disconnect();
})();

このシンプルでありながら強力なコードスニペットは、リアルタイムのランキングデータを管理するのに理想的です。