ホームページ >バックエンド開発 >PHPチュートリアル >データの一貫性の問題
1 つのコードで、mysql、redis、mongodb が同時に動作します。これらのデータベース間のデータの一貫性を確保するにはどうすればよいでしょうか?
たとえば、msyql はフィールド A を保存し、redis はフィールド B を保存し、mongodb はフィールド C を保存します。ABC が同時に成功するか失敗するかを確認するにはどうすればよいですか
1 つのコードで、mysql、redis、mongodb が同時に動作します。これらのデータベース間のデータの一貫性を確保するにはどうすればよいでしょうか?
たとえば、msyql はフィールド A を保存し、redis はフィールド B を保存し、mongodb はフィールド C を保存します。ABC が同時に成功するか失敗するかを確認するにはどうすればよいですか
操作は同時に行われますが、各データベースは異なる方法で処理されるため、すべてが成功するという保証はありません。
3 つのプロセスがすべて成功した場合、最終的な成功とみなされます。1 つが失敗した場合、それは失敗とみなされます。
この設定は正しいですか?
redis と mysql のトランザクションは、挿入する前にトランザクションを開始すると、一緒にコミットし、一緒にロールバックする方が操作が簡単だと思います。
3 種類のデータベースが関係しているため、各データベースの強力な一貫性を保証するための既成の XA プロトコルは存在すべきではありません。したがって、次善の策を選択して、
分散トランザクション 1
分散トランザクション 2
の最終的な整合性を確保できます。