Overview
概要
Redis(レディス)
・インメモリデータベース
・NoSQL
・データ構造サーバとも呼ばれる
・メモリに展開するため超高速!しかし容量の制限がシビア。
・アプリケーション全体のデータベースというよりも、大量かつ高速に処理しなくてはいけない場面に使う。
(オンラインゲームのリアルタイムランキングやログなど。RDBのorder_byはコストが高い)
・メモリに展開するので、電源が落ちた場合はデータが吹っ飛ぶが、「永続化」という仕組みで対処している。
(定期的にディスクに書き出す)
・他のインメモリデータベースより、ちょっと複雑なデータ構造を扱える。
・AWSのElastiCacheで採用されている
・シングルスレッドで動作し、必然的にデータ操作は排他的となる
KBS(Key Value Store))
・Database
要はハッシュテーブル。
Key value
---------------
name "kaki"
email "kakisoft@gmail.com"
score 120
Data Type(データ型)
String
個々の要素。基本形。
List
順番に並べた複数の要素。時系列的なデータ。
(要素の途中に追加したり、途中の要素を変更するのは苦手)
Set
集合。順不同の複数の要素を管理。重複を許さない。
タグ付け、ソーシャルグラフなどに使用。
Sorted Set
Setの特徴を持ちつつ、個々の要素に重みづけのスコアが付けられる。
ランキングなどに使用。
Hash
連想配列。ラベルと値のセット。