KVS(キーバリューストア)とは?
Key-Value Storeの略。キー(key)とバリュー(value)のペアでデータを管理する最もシンプルなNoSQLデータベース。高速アクセスとスケーラビリティに優れる
詳細解説
KVS(Key-Value Store: キーバリューストア)は、データを「キー(Key)」と「バリュー(Value)」のペアとして格納するシンプルなデータベース構造です。辞書(ハッシュマップ)に似た構造で、キーを指定して対応するバリューを高速に取得できます。SQLのような複雑なクエリは実行できませんが、その代わりにO(1)(定数時間)に近い非常に高速な読み書きが可能で、水平スケールアウト(サーバーを追加して分散処理)が容易です。KVSの代表的な製品はRedis(REmote DIctionary Server):インメモリ型・文字列・リスト・セット・ハッシュ等の多様なデータ型・永続化も可能・セッション管理・キャッシュ・リアルタイムランキングに多用。Amazon DynamoDB:AWSのマネージドKVS・自動スケール・スループット保証・大規模WebサービスのDB。Memcached:シンプルなインメモリキャッシュ・Redisより機能は少ないが軽量。Apache Cassandra:分散KVSの一種・地理分散にも対応。KVSの典型的な用途はWebサービスのセッション管理(ユーザーログイン状態の保存)・データベースのフロントキャッシュ(RDBMSへの負荷軽減)・リアルタイムランキング(ゲームのスコアボード)・ショッピングカートの一時保存・カウンタ(ページビュー・いいね数)・メッセージキューです。KVSの制約はトランザクションや複雑なクエリが苦手で、RDBMSとの使い分けが重要です。ITパスポートでは「KVSの定義」「NoSQLの種類としてのKVS」「Redisの代表用途(キャッシュ・セッション)」「RDBMSとの使い分け」が出題されます。
ITパスポートでの出題ポイント
- 1キーとバリューのペアで管理するシンプルなNoSQL。O(1)に近い高速アクセス
- 2Redisがインメモリ型の代表:セッション管理・キャッシュ・リアルタイムランキング
- 3複雑なクエリやトランザクションは苦手。RDBMSとの使い分けが重要
- 4水平スケールアウト(サーバー追加で拡張)が容易