データベース編 第5章 / 全13章
キーバリューストアとは
Key-Value Store ・ KVS
NoSQL ・ とにかく速いコインロッカー。番号札(キー)さえあれば、中身を一瞬で取り出せる。
図とさわれるデモで確かめる →
ポイント
- 「キー」と「値」の組だけを保存する、いちばん単純なDB
- キーがわかっていれば、どんなに量が多くても一瞬で取り出せる
- 「条件で探す」「表をつなぐ」といった複雑な検索は苦手
名前の由来
key鍵value値・中身store保管庫
鍵(キー)を渡すと、中身(値)が出てくる保管庫。
仕事の現場では
ログイン状態の保持、ショッピングカート、ランキング表示など「大量のアクセスを速くさばく」場面で、RDBの手前に置いて使われます。
くわしく(正確な話)
- メモリの上で動くもの(インメモリ)は、1ミリ秒未満で応答できる。
- 代表例はRedis。クラウドではDynamoDBもキーバリュー型として使える。
- RDBの前に置いて、よく読まれるデータを覚えておく使い方をキャッシュと呼ぶ。
- データに有効期限(TTL)を付けて、自動で消すことができる。
この章の用語(意味と語源)
- キーバリューストア Key-Value Store ・ KVS
「キー」と「値」の組だけを保存する、もっとも単純で速いDB。
キーを渡すと値が一瞬で返ってきます。複雑な検索はできません。
覚えておく:例:キー user:42 → 値 {ログイン中}
語源key(鍵)+ value(値)+ store(保管庫)。
- インメモリ In-Memory
データをディスクではなくメモリ(作業机)に置いて動かすこと。
メモリはディスクよりけた違いに速い反面、電源が切れると消えるため、別途保存の工夫をします。
語源in memory(記憶の中に)。memory はラテン語 memoria(記憶)から。
- キャッシュ Cache
よく使う答えを、手元に取っておくこと。
毎回DBに聞きに行かず、覚えておいた答えを返すので速くなります。古い答えが残らないよう、有効期限(TTL)を付けます。
語源フランス語 cacher(隠す)から。探検家の「食料の隠し場所」が元の意味。
- Redis レディス
もっとも有名なインメモリのキーバリューストア。
語源REmote DIctionary Server(離れた場所にある辞書サーバー)を縮めた名前。
- TTL ティーティーエル
データを覚えておいてよい時間(賞味期限)。
語源Time To Live(生きていられる時間)の頭文字。