现在存文章内容用hash类型:
post:$post_id title, content ... comment:$comment_id content, date, status posts: $post_id, $comment_id
存了一个hash类型的posts来表示关系,可能是还是没摆脱关系型数据库。
这种“一对多”的模式,如何在redis上更合理……更redis的体现出来. 应该如何设计这里
ringa_lee
NoSQL が Join 関数を完全にサポートしていることはほとんどないため、展開された関係を NoSQL に保存するには非正規化形式が一般的に使用され、その関係はもはや「多対 1」ではなく「1 対多」になります。
コレクションタイプを使用して、Redis のリストやセット、MongoDB のサブドキュメントなどのサブドキュメントを保存できます。
NoSQL の場合は、記事やコメントなどの関連するものをまとめるという単純な原則があります。可能であれば、記事内だけでなく、コンテンツを含む記事とコメントのすべての属性をまとめてください。コメントの ID がレコードに保存されます。 この利点は明らかです。データをどのように分割しても、1 回の読み取り操作だけでデータを取得できます。これは、非常に手間がかかります。バックエンドのスケーラビリティが大幅に向上します。 もちろん、このような設計が常にアプリケーションに適しているとは限りません。たとえば、記事と著者の間の関係は完全に非標準化できない場合があるため、データの表示方法とプロセスを慎重に検討して、データをどのように整理するかを決定する必要があります。
リストを使用しますか?
post_id:setにコメントのIDを入れることはできないでしょうか?
NoSQL が Join 関数を完全にサポートしていることはほとんどないため、展開された関係を NoSQL に保存するには非正規化形式が一般的に使用され、その関係はもはや「多対 1」ではなく「1 対多」になります。
コレクションタイプを使用して、Redis のリストやセット、MongoDB のサブドキュメントなどのサブドキュメントを保存できます。
NoSQL の場合は、記事やコメントなどの関連するものをまとめるという単純な原則があります。可能であれば、記事内だけでなく、コンテンツを含む記事とコメントのすべての属性をまとめてください。コメントの ID がレコードに保存されます。
つまり、NoSQL は万能薬ではなく、より高い柔軟性、拡張性、パフォーマンスを提供しますが、元のブラック ボックス データベースをホワイト ボックス ストレージ エンジンに簡素化することもできます。さまざまな要素の中から最適なバランスを自分で見つける必要があります。この仕事には多くの経験とビジネスに対する深い理解が必要です。この利点は明らかです。データをどのように分割しても、1 回の読み取り操作だけでデータを取得できます。これは、非常に手間がかかります。バックエンドのスケーラビリティが大幅に向上します。
もちろん、このような設計が常にアプリケーションに適しているとは限りません。たとえば、記事と著者の間の関係は完全に非標準化できない場合があるため、データの表示方法とプロセスを慎重に検討して、データをどのように整理するかを決定する必要があります。
リストを使用しますか?
post_id:setにコメントのIDを入れることはできないでしょうか?