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

Redisのネストされた構造の代替案?

    基本的に2つの戦略があります:

    • 複雑なオブジェクトをシリアル化し、文字列として保存できます。シリアル化形式にはjsonまたはmsgpackをお勧めします。これは、ほとんどのクライアント側言語から操作するのに十分簡単です。サーバー側のアクセスが必要な場合、RedisはLuaのmsgpackとjsonのサポートを使用してコンパイルされるため、サーバー側のLuaスクリプトはそのようなオブジェクトを簡単にエンコード/デコードできます。

    • オブジェクトを異なるキーに分割できます。 user:idと複雑なデータ構造をこのIDに格納する代わりに、user:id、user:id:address_list、user:id:document_listsなどのいくつかのキーを格納できます...アトミック性が必要な場合は、MULTI/をパイプライン化します。 EXECブロックを使用して、データの一貫性を保証し、ラウンドトリップを集約できます。

    この回答の簡単な例を参照してください:

    LPUSHコマンドは、JSONから初期化されたレコードで機能しますか?

    最後に、Redisはドキュメント指向のデータベースではありません。本当に複雑なドキュメントがたくさんある場合は、MongoDB、ArangoDB、CouchDB、Couchbaseなどのソリューションの方が適している可能性があります...



    1. MongoDBのmap-reduce結果の構造を変更するにはどうすればよいですか?

    2. Tomcatを使用したMongoDBJavaDriverデータベース接続プール

    3. Mongoid/Mongodbおよび埋め込みドキュメントのクエリ

    4. Double NestedArrayMongoDBで検索