コンテンツにスキップ

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

連想配列。ラベルと値のセット。