質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.34%
MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Q&A

0回答

397閲覧

MongoDBとRedisにデータベースの整合性の機能があるか?

makabetetsuya

総合スコア0

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

0グッド

0クリップ

投稿2025/01/10 08:15

実現したいこと

MongoDBとRedisに、整合性の機能があるか知りたいです。

発生している問題・分からないこと

MongoDBとRedisにデータベースの整合性の機能がありますか。
ChatGPTに聞いたところ、MongoDBとRedisにはデータベースの整合性の機能があるとのことですが、有識者の方に聞くと、RDBの整合性しかないと言います。

ご回答をいただけますと幸いです。
よろしくお願いいたします。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

ChatGPTに聞いたところ、MongoDBとRedisにはデータベースの整合性の機能があるとのことですが、有識者の方に聞くと、RDBの整合性しかないと言います。

補足

RDBの整合性MongoDBとRedisにデータベースの整合性の機能があるか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2025/01/10 11:09

どのような機能性を指して「整合性」と考えていますか?それとも、「整合性に資する何らかの機能があるか」という意図でしょうか?
TakaiY

2025/01/10 11:59

> 有識者の方に聞くと、RDBの整合性しかないと言います 「RDBの整合性しかない」という文の意味がわからないんですが、どういう意味でしょうか? 「データの整合性を保障する機能はRDBにしかない」という意味でそふか? 上のコメントと同じかもしれませんが、「データベースの整合性の機能」とは具体的にはどのような機能のことを指していますか?
makabetetsuya

2025/01/10 12:50

maisumakun様 質問へのコメントありがとうございます。 質問内容が十分でなく、分かりにくく申し訳ございません。 おっしゃる通り、「MongoDBとRedisの整合性に資する何らかの機能があるか」という意図です。 具体的には、MongoDBを中心に整合性を取る方法で実装を考えております。 MongoDBに登録し、データを保証、Redisへ表示系データを送り、その後RDBへの保存を行うという流れです。 よろしくお願いいたします。
makabetetsuya

2025/01/10 12:51

TakaiY様 質問へのコメントありがとうございます。 質問内容が十分でなく、分かりにくく申し訳ございません。 おっしゃる通り、「データの整合性を保証する機能はRDBにしかない」という意味です。 (先ほどの回答と重複して恐縮ですが、) 具体的には、MongoDBを中心に整合性を取る方法で実装を考えております。 MongoDBに登録し、データを保証、Redisへ表示系データを送り、その後RDBへの保存を行うという流れです。 よろしくお願いいたします。
maisumakun

2025/01/10 12:57

> MongoDBに登録し、データを保証、Redisへ表示系データを送り、その後RDBへの保存を行うという流れです。 どのような意図を持って、この3つへ分担させているのでしょうか(複数を組み合わせるにしても、RDBMSで整合性を保つ、という形を取れない背景はどのようなものでしょうか)。
makabetetsuya

2025/01/10 13:10

maisumakun様 > どのような意図を持って、この3つへ分担させているのでしょうか(複数を組み合わせるにしても、RDBMSで整合性を保つ、という形を取れない背景はどのようなものでしょうか)。 目的は高速化です。RDBはマスタデータとしてあり、MongoDBとRedisで主要なデータを保存したいです。 そのため、MongoDBとRedisで整合性に資する何らかの機能があるか調査しております。 よろしくお願いいたします。
makabetetsuya

2025/01/10 13:31 編集

有難うございます。 > 「データベースの整合性の機能」とは具体的にはどのような機能のことを指していますか? まず、現在のシステムがPostgreSQLのバックエンド中心に画面表示する業務アプリですが、表示速度に問題があります。高速化の改修を検討しておりますが、フロントエンドにローカルストレージにキャッシュを設け、バックエンドにPostgreSQLのフロント寄りに、MongoDB、Redisと増設する予定です。クライアントの要求をRedisかMongoDBに読み込み、整合性を考えております。この後に、従来のPostgreSQLに繋ぐ構想です。このフローに対してRDBでマルチスレッドに登録前にMongoDB、Redisそしてフロントエンドの流れ、もう一方がPostgreSQLに保存のルートの提案が有識者の提案でした。RDBでマルチスレッドに登録前にMongoDB、Redisの流れに整合性よりも高速化しか検討してないようでした、従来のPostgreSQLがデータのベースですが、登録画面からRedis、MongoDB、PostgreSQLの流れを作りたいですが、今までのPostgreSQL DBの整合性からどのようにRedis、MongoDBで整合性を取ったらよいかわかりません、教えて下さい。
TakaiY

2025/01/10 14:27

MongoDBにもRedisにもトランザクションくらいならありますよということを書こうと思ってましたが、検討されているような多層データストレージの構成では、層間のデータ整合性の方が問題になると思うので、DBそのものの整合性など瑣末な言のように思います。
makabetetsuya

2025/01/10 21:50

ご意見ありがとうございます。 > 検討されているような多層データストレージの構成では、層間のデータ整合性の方が問題になると思うので まだ具体的な実装には着手しておらず、層間の整合性を保つための設計や技術的な方針について検討している段階です。 もし、こうした構成で整合性を確保するための効果的な方法や、参考になる設計の工夫などがありましたら、ご教授いただければ幸いです。 よろしくお願いします。
maisumakun

2025/01/10 22:39

> 目的は高速化です。RDBはマスタデータとしてあり、MongoDBとRedisで主要なデータを保存したいです。 それだけ「書き込み」の高速化を志向している、という状況でしょうか。 (読み取り側の高速化を考えるなら、RDBMSを正として、そこからレプリケーションやキャッシュを使うというような手段がありえます)
makabetetsuya

2025/01/10 22:58

> それだけ「書き込み」の高速化を志向している、という状況でしょうか。 「書き込み」(保存)、「読み取り」(表示)の高速化の改修を検討しています。 > 読み取り側の高速化を考えるなら、RDBMSを正として、そこからレプリケーションやキャッシュを使うというような手段がありえます 「RDBMSを正としてレプリケーションやキャッシュを活用する方法」について、現状ではMongoDBも主要なデータ保存先として活用することを検討しているため、MongoDBとRedisをどのように役割分担させるべきか、また整合性をどう確保するかについてさらに検討が必要だと感じています。 RDBMSを基盤としつつ、MongoDBとRedisを組み合わせた設計について、ご教授いただけますと幸いです。 よろしくお願いいたします。
maisumakun

2025/01/10 23:51

> 現状ではMongoDBも主要なデータ保存先として活用することを検討しているため 具体的に、(高速化以外も含めて)どのような特性を期待してMongoDBを活用する予定なのでしょうか。
makabetetsuya

2025/01/11 01:31

> 具体的に、(高速化以外も含めて)どのような特性を期待してMongoDBを活用する予定なのでしょうか。 目的は高速化です。 例えば、ある事業所や店舗の3ヶ月分のデータなど、部分集合のデータを保存しておき、表示と保存の読み書きのスピードを高速化させることを期待しております。
maisumakun

2025/01/11 01:51

えっと、書き込みすらオフロードが必要なほど激しくなる想定なのでしょうか?
dodox86

2025/01/11 02:41

私自身はそれほど大規模なデータは扱ったことは無く、コメントに躊躇してしまうのですが、気になったもので横からごめんなさい。(異種アーキテクチャ製品の併用、と言うことで興味を覚えています) もともとの質問は「MongoDBとRedisに異種のDBSとのデータの整合性を高める、担保する、保修する等の機能がありますか」とのような意図ですよね。 で、人間の有識者に聞くと「RDBとの整合性に関する機能しかない」と言われたので、「本当にそうなのか?、あるならその機能は何か?」と思ったので質問されたのですよね。 回答にあたっては「そんな機能は必要なのか? 質問の背景は?」と言う疑問もあって(<いわゆるXY問題を回避する為)、質問内容を明瞭にすべくコメントも続いていると思うのですが、 その機能が有るか・無いかだけの視点でいえばこの質問はいったん終わるのではないでしょうか。 MongoDBとRedisを使うことが目的ではなく、システム全体の高速化が目的なのであれば、今現在遅くて困っている部分の切り分けとか、原因究明とか、データに関してはリアルタイムの反映の必要はなく、別に遅くて構わない加工されたデータで良いものであれば、バッチ処理で表示用のデータにするので充分とか、今のシステムのまま、検討し、対応する場所が色々ある気がします。(<既に何に対応されているのか質問からは分かりません) 現状、質問者さんのその対象の案件のシステム全体、課題の詳細が分からなければ、既にコメントいただいているように整合性を高める必要があるかどうかは些末な問題に思えます。 MongoDBとRedisを導入して、今のシステムの運用やデータ構造を極力そのままに透過的にパフォーマンスを高めたい、との要望であれば話の筋は通りますが、これはもう技術コンサル案件ですね。いち質問で終わる問題では無い気がします。
makabetetsuya

2025/01/11 02:47 編集

> えっと、書き込みすらオフロードが必要なほど激しくなる想定なのでしょうか? はい、現在のシステムは表示(読み込み)・保存(書き込み)のスピード化が課題となっています。
makabetetsuya

2025/01/11 03:03

> 質問内容を明瞭にすべくコメントも続いていると思うのですが、その機能が有るか・無いかだけの視点でいえばこの質問はいったん終わるのではないでしょうか。 質問内容が不十分でわかりにくく申し訳ございません。 まだ質問へのコメントだけで、「MongoDBとRedisにデータベースの整合性の機能があるか?」という質問に対する結果が出ていませんので、引き続き回答をお待ちしています。 > MongoDBとRedisを使うことが目的ではなく、システム全体の高速化が目的なのであれば、 MongoDBとRedisを使って、表示スピードの高速化が目的です。 > MongoDBとRedisを導入して、今のシステムの運用やデータ構造を極力そのままに透過的にパフォーマンスを高めたい、との要望であれば話の筋は通りますが、これはもう技術コンサル案件ですね。いち質問で終わる問題では無い気がします。 ご意見ありがとうございます。
TakaiY

2025/01/11 04:20

> まだ質問へのコメントだけで、「MongoDBとRedisにデータベースの整合性の機能があるか?」という質問に対する結果が出ていませんので、引き続き回答をお待ちしています。 > 具体的には、MongoDBを中心に整合性を取る方法で実装を考えております。 MongoDBに登録し、データを保証、Redisへ表示系データを送り、その後RDBへの保存を行うという流れ MonngoDB、RedisのDB内でのデータ整合性の機能ではなくて、各DBを連携した上での整合性を取る機能がMongoDBやREdisにあるかどうかを聞いているんでしょうか? そんな機能あるんでしょうか? 無いと思います。 あったとしてもそれらの外に置く何かでしょうね。
makabetetsuya

2025/01/11 04:38

> MonngoDB、RedisのDB内でのデータ整合性の機能ではなくて、各DBを連携した上での整合性を取る機能がMongoDBやREdisにあるかどうかを聞いているんでしょうか? 質問の本質は、「今までのPostgreSQLのデータの整合性から、MongoDBとRedisで整合性を取ることができるか?」という点です。 今までのPostgreSQLがデータのベースですが、登録画面からRedis、MongoDB、PostgreSQLの流れを作りたいです。 MongoDBやRedis自体に機能はないのであれば、それらの外部に整合性を担保する仕組みをご教授いただけますと幸いです。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.34%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問