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

ノードのredisを使用してハッシュキーのすべてのフィールドと値を取得します

    前の値を上書きするため、1つの値を取得しています。

    client.hmset("Table1", "Id", "9324324", "ReqNo", "23432", redis.print);
    

    これにより、Id、ReqNoがTable1ハッシュオブジェクトに追加されます。

    client.hmset("Table1", "Id", "9324325", "ReqNo", "23432", redis.print);
    

    これは、Table1ハッシュオブジェクトのIdとReqNoをオーバーライドします。この時点では、ハッシュには2つのフィールドしかありません。

    実際、問題は、リレーショナルデータベースモデルをRedisにマッピングしようとしているという事実から生じます。貴方はするべきではない。 Redisを使用する場合は、データ構造とアクセスパスの観点から考える方がよいでしょう。

    レコードごとに1つのハッシュオブジェクトを格納する必要があります。例:

    HMSET Id:9324324 ReqNo 23432 ... and some other properties ...
    HMSET Id:9324325 ReqNo 23432 ... and some other properties ...
    

    次に、セットを使用してIDを保存できます。

    SADD Table1 9324324 9324325
    

    最後に、Table1コレクションに関連付けられているReqNoデータを取得するには:

    SORT Table1 BY NOSORT GET # GET Id:*->ReqNo
    

    特定のReqNoに関連付けられているすべてのIDも検索する場合は、このアクセスパスをサポートするための別の構造が必要です。

    SADD ReqNo:23432 9324324 9324325
    

    したがって、次を使用してレコード23432のIDのリストを取得できます。

    SMEMBERS ReqNo:23432
    

    言い換えれば、リレーショナルモデルを転置しようとしないでください。ユースケースをサポートする独自のデータ構造を作成するだけです。




    1. MongoDBで日付を文字列に変換する3つの方法

    2. MongoDBに挿入されたドキュメントの_idを取得しますか?

    3. 別のタイムゾーンで年月日ごとに集計する方法

    4. RedisのソースコードのareaとBoundingBoxの違いは何ですか