noSQLに関する基本的な内容をまとめてみたものです。noSQLに関する、Web上にすでにある良識な解説コンテンツをまとめたサイトの抜粋です。
[KVS (Key-Value Store)とは] (https://www.techcrowd.jp/nosql/kvs/)
[noSQLの一つのジャンルとしてのKVS] (https://www.techcrowd.jp/nosql/kvs/)
KVS(Key-Value Store)は、KeyとValueを組み合わせる単純な構造からなるデータストアです。
Keyを指定すると、Keyに関連付けられたValueが呼び出される仕組みとなっています。
KVSの特徴
- データモデルがシンプルである
- スケールアウトに適した構造をしている
- 高速でデータの読み書きが可能
- 分散処理に適している
- トランザクション処理できないものが多い
[KVSの利用形態] (https://www.techcrowd.jp/nosql/kvs/)
KVSはKeyとValueの関係だけのデータベースなので、複数のサーバーにデータを分散させて格納する分散データストアとしての利用が増えています。
分散データストアは負荷の分散や高可用性を低コストで実現できるために、大規模なデータを扱うWEBアプリケーションなどで利用される形態です。
リレーショナルデータベースは構造的にデータを分散させるのが難しいのですが、KVSはいくらでもサーバーを増やして分散化することができます。
KVSはテーブル同士を結合するような複雑な処理は苦手にしていますが、自由にスケールできるというメリットを活かして利用されています。
[代表的なKVS] (https://www.techcrowd.jp/nosql/kvs/)
代表的なKVSとして、memchaed・Redis・BigTableなどがあります。
memchaed
・メモリにデータを保存して、データベースの負担を減らすKVS
・サーバ上のメモリにデータを格納するので、応答性に優れている
Redis
・Redisもメモリ上にデータを格納するので、高速の読み書きが可能となる
・文字列・BLOB・リスト・ハッシュなど、幅広い種類のデータが扱える事からデータストラクチャ・ストアと呼ばれる
BigTable
・Googleの分散データストア
・Google検索・YouTube・Google Mapなど、Googleの数多くプロジェクトに使われている