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

Redisのフィルタリング要素

    Redisで最後のスキーマをどのように実装しますか?可能ですか?

    Redisはスキーマレスです 。必要なものをデータストレージアプローチと呼びましょう 。

    考えられるアプローチの1つは、HSETを使用することです。 またはHMSET これらのJSONオブジェクトをidで追加します。idはキーです。 JSONテキストはです 。このハッシュをusers:byidと呼びます。 。

    これが問題の最初の部分です。これで、IDでオブジェクトを取得できます。 。

    次の問題は、ランキングと呼ばれる範囲のオブジェクトを取得することです。 。これを取得するには、ZADDを使用してオブジェクトを並べ替えられたセットに保存する必要があります 。並べ替えられたセットは並べ替えられます スコアごとに、アイテムはスコアとともに保存されます 。ユースケースにぴったりです!

    実際には、ソートされたセット全体にオブジェクトIDを格納します:

    zadd users:byranking 10 1 5 2

    ...ここで10 はスコア(つまり、実際のランキング値)であり、1は id など。

    では、ランキングでアイテムをフィルタリングするにはどうすればよいでしょうか。 ZRANGEBYSCOREの使用 :

    • 10を除く0〜10のランク付け。zrangebyscore users:byranking 0 (10
    • 10を含む0〜10のランク付け。zrangebyscore users:byranking 0 10

    いわゆるZRANGEBYSCORE 取得したユーザーのIDが表示されます。 JSONテキストを取得するにはどうすればよいですか? HMGETの使用 :

     HMGET users:byid 1 2
    

    ...これにより、 idを持つ両方のユーザーが取得されます 1 および210の場合 ランキングは包括的です。




    1. Redisのソート済みセットで部分的なキー名を使用して値を検索する

    2. MongoDB $ orderBy

    3. pymongoから生のmongodbコマンドを実行する方法

    4. Springを使用して認証が必要なMongoDBに接続する方法