【きーばりゅーがたでーたべーす】

キーバリュー型データベース とは?

最終更新:
💡 ロッカーの番号で、中身を取り出す

キー(識別子)と値の組み合わせでデータを保存し、キーを指定して値を取り出すことを基本にする非リレーショナルデータベース。

📌 このページのポイント
キーを指定すると、値が見つかるロッカーの番号と、中身の関係キー(識別子)値(保存する中身)user:1001名前:田中session:abcログイン中の利用者cache:home保存済みの画面データ検索方法や保存方式は、製品で違うよ
キーと値を組にして保存し、キーを指定して対応する値を取得します。値として使える型や、索引・永続化の機能は製品によって異なります。
ひよこ ひよこ
キーバリューって、どういう組み合わせ?
ペンギン先生 ペンギン先生
キーはデータを見つけるための識別子で、バリューは保存する値だよ。たとえばuser:1001をキーに、名前や設定を保存する。ロッカーの番号がキー、中に入っている荷物が値というイメージだね。
ひよこ ひよこ
保存したデータは、どう使うの?
ペンギン先生 ペンギン先生
基本は、キーと値を渡して保存し、同じキーを指定して値を取り出すことだよ。操作の名前は製品で違い、RedisならSETやGETなどを使う。文字列だけでなく、複数の項目やリストなどを扱える製品もあるんだ。
ひよこ ひよこ
どんな場面に向いている?
ペンギン先生 ペンギン先生
ログイン中のセッション情報や、よく使うデータのキャッシュなど、必要なキーがわかっている用途で使いやすいよ。製品や設定次第では、アプリの主なデータの保存先にもなる。すべてを一時保存用と考えなくていいんだ。
ひよこ ひよこ
名前や年齢で自由に検索できる?
ペンギン先生 ペンギン先生
キーを指定する取得が基本なので、SQLのような自由な条件検索や表の結合を当然に使えるわけではないよ。ただし、索引や範囲検索などを備える製品もある。検索したい条件に合わせて、キーの設計と製品の機能を確認するんだ。
ひよこ ひよこ
RedisとDynamoDBは、同じ使い方でいいの?
ペンギン先生 ペンギン先生
どちらもキーを使ってデータを扱えるけれど、機能や運用は違うよ。Redisには文字列やハッシュなどの型があり、RDBやAOFというディスクへの保存方法もある。DynamoDBはAWSが提供するサービスだ。速度だけで決めず、必要な検索、永続化、障害時の復旧、費用などを比べよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「キーバリュー型データベース」って出てきたら「キーで中身を取り出すデータの保管庫」と思えばだいたいOK!
📖 おまけ:英語の意味
「Key-Value Database」 = キーバリュー型データベース
💬 プログラミングのハッシュマップや辞書と同じ発想で、キーを渡すと対応する値が返ってくるシンプルな仕組みだよ

参考資料

← 用語集にもどる