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

ソートされたオブジェクトのセットをredisに保存するにはどうすればよいですか?

    Redisはネストされたデータ構造をサポートしていないため、単一のキーを使用してすべてのハッシュを格納するには、シリアル化が必要になります。結果は次のようになります。

    key: users:pro
             |
             +-----> field       value
                     name:Bruce  "age: 20, score: 100"
                     name:Ed     "age: 22, score: 80"
    
    > HMSET users:pro name:Bruce "age: 20, score: 100" name:Ed "age:22, score:80"
    

    対応するソート済みセットは次のようになります:

    key: users:pro.by_scores
             |
             +---> scores:    80           100
             +---> values: "name:Ed"   "name:Bruce"
    
    > ZADD users:pro.by_scores 80 "name:Ed" 100 "name:Bruce"
    

    注1 :このアプローチでは、ユーザーごとに一意のID、現在はnameが義務付けられています 問題が発生する可能性のあるプロパティが使用されています。

    注2 :シリアル化(および逆シリアル化)を回避するために、ユーザーごとに専用のキーを使用することを検討できます。つまり、次のことを意味します:

    key: users:pro:Bruce
             |
             +-----> field       value
                     age         20
                     score       100
    
    key: users:pro:Ed
             |
             +-----> field       value
                     age         22
                     score       80
    
    > HMSET users:pro:Bruce age 20 score 100
    > HMSET users:pro:Ed age 22 score 80
    
    key: users:pro.by_scores
             |
             +---> scores:      80                100
             +---> values: "users:pro:Ed"   "users:pro:Bruce"
    
    > ZADD users:pro.by_scores 80 "users:pro:Ed" 100 "users:pro:Bruce"
    



    1. Stackexchange.Redisでのパイプラインとバッチ処理

    2. 2.0ドライバーで同等のMongoServer.State

    3. データベースのMongoDBダンプを作成するにはどうすればよいですか?

    4. C#+ MongoDB-MongoDB DataTypes/Attributesを使用しないObjectId