sql >> データベース >  >> NoSQL >> Redis

集約されたカタログツリー検索結果をRedisに保存する方法

    速度が必要な場合は、構造体または「キャッシュ」をredisに保存するときに、できる限り準備する必要があります。製品をHSETに保存する場合 、このHSETの「製品データ」メンバーの横にカテゴリカウンター(カテゴリごとに1つ)を追加します 、HINCRBYを使用できます カウンターをインクリメント/デクリメントします。

    一般的に(ニーズに合わせてRedisキャッシュを設計する):不要なデータを取得しないようにする必要があります。

    集約されたレポートの保存(/更新/削除)と取得には、Luaスクリプトを使用することをお勧めします。 LuaスクリプトはRedisサーバーで実行されます。 ServiceStackはそれらをサポートします(SCRIPT LOAD + EVALSHA または単にEVAL )、BookSleeve C#クライアントモジュール(これを使用しており、少し高速です。'faster' )を試すこともできます。 :優れたredis-dataデザインが最初に来るのは当然です)。BookSleeveC#クライアントは、マルチスレッドのredisパイプラインに焦点を当てています。これは、大規模なデータセットを処理するときにおそらく必要なものです。 ServiceStackでもパイプライン化が可能である必要があります。

    カテゴリと製品のIDが整数の場合は、これをZSETと組み合わせることもできます。 、IDをスコアフィールドとして使用できます。 ZRANGEBYSCOREを使用 「レコード」を直接取得できます。この手法は、IDが15桁以下を使用し、「スコア」の小数部分を使用しない限り安全です。したがって、IDは-999999999999999から999999999999999の範囲内にとどまる必要があります。注:これらの制限は、Redisサーバーが実際にスコア(フロート)をredis文字列表現として内部に保存するために存在します。

    これがお役に立てば幸いです、TW




    1. ノードアプリ間の共有セッション?

    2. レスキュー:接続が拒否されました-localhost:6379でRedisに接続できません

    3. CDPの運用データベース

    4. RedisクラスターでのトランザクションをサポートするRedisクライアント(Javaを推奨)はありますか?