ホームページ >データベース >Redis >Redis の多次元ランキングのアイデアを共有する

Redis の多次元ランキングのアイデアを共有する

藏色散人
藏色散人転載
2023-04-21 16:01:381306ブラウズ

この記事は、redis に関する関連知識を提供します。主に、redis の多次元ランキングの考え方を共有します。興味のある友人は、一緒に見てみることができます。皆さんのお役に立てれば幸いです。

Redis の多次元ランキングのアイデアを共有する

#問題の説明

  1. #誰もが知っているように、redis zset はランキングでよく使用されており、すぐに使用できますが、一次元のランキングしかサポートしていないという欠点があります。

  2. しかし、実際のプロジェクトでは、一次元のランキングは実際には非常に現実的ではありません。簡単な例としては、ウォーキング ランキングが挙げられます。製品の要件は、歩数、完了数に基づいてランク付けおよび並べ替えることです。左から時刻、人物名が優先されます。

  3. 私の解決策は、すべての次元を数値に変換し、これらの次元の数値を加算して、多次元のランキングを解決できるようにすることです。
#具体的な解決策のアイデア

    ステップ数: 本来は数値なので無視できます
  1. 完了時間: 完了時間には通常タイムスタンプが格納されており、タイムスタンプが遅いほど値が大きくなります。完了時間が早いほど上位にランクされるようにするため、時間が早いほど、値は大きくなります。より大きなタイムスタンプからユーザーの完了時刻のタイムスタンプを引くことができるため、完了時間が早ければ早いほど、その値は大きくなります。
  2. 人名: 一般に人名は漢字または文字で構成されます。漢字も文字も文字列です。並べ替える場合、最初のステップは文字列を数値に変換することです。このプロセスには PHP を使用することをお勧めします。ネイティブ関数
  3. mb_ord

    たとえば、ユーザーの歩数が 10,000、完了時間 (計算後) が 100,000 (タイムスタンプはランダムに書き込まれます)、人物の名前が 500 (計算後) であるとします。は Zhang San (ランダムに書かれています) )、10000.100500 (歩数、完了時間、人物名を合計した値) の値を取得できます。
  4. 実際の値の取得処理では、小数点を削除することができますが、小数点以下の数値は順位付けにのみ使用されます。
  5. 推奨学習: 「

    Redis ビデオ チュートリアル


以上がRedis の多次元ランキングのアイデアを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。