NoSQL / KVS データベース

RDBの限界(スケール・スキーマ固定)に対し、用途特化で生まれた非リレーショナルDB群。_moc-web-infra

分類

  • KVS(Key-Value Store): redis が代表。シンプルで高速。
  • ドキュメント指向: MongoDB。v3.2 から JOIN 相当($lookup)が可能に。
  • ワイドカラム: Cassandra(Facebook発)。
  • マネージドKVS: Amazon DynamoDB。DynamoDB Streams で cqrs-event-sourcing が組める。
  • マルチモデル: SurrealDB。ドキュメント/グラフ/全文検索/ベクトルを一体化。Cypher 風クエリで知識グラフ用途も。

Redis

インメモリKVS。Pub/Sub の上位互換である Redis Streams を持ち、マイクロサービスのメッセージング基盤になる。Sorted Set(zrangebyscore)で簡易な遅延実行キューを実装できる(sidekiq の内部実装と同様)。セッションを外出ししてmicroservices-architectureのスティッキーセッション問題を解消する用途にも。

SQL vs NoSQL

RDBは一貫性とJOINに強いがスケールしにくい。NoSQLは水平スケール・スキーマ柔軟性に強いが、JOINや強整合性を捨てることが多い(database-transaction-theoryの結果整合性)。クライアント直結のNoSQLとしては Firestore(firebase)がある。

関連