Redis 【Remote dictionary server】
リレーショナルデータベースとは異なる構造を持ついわゆるNoSQL型のデータベースシステムで、キーバリューストア(KVS:Key-Value Store)として動作する。任意の保存したいデータ(値:value)に対し、対応する一意の標識(キー:key)を設定し、これらをペアで保存する
保存する値(value)として様々なデータ構造を利用することができ、文字列、バイナリデータ、リスト、集合(セット)、ハッシュなどを保存することができる。
原則としてすべてのデータをメモリ上に展開・保管するインメモリ型のシステムで、ストレージへの保存と読み出しを前提とする一般的なデータベースに比べ極めて高速に動作するが、大量のデータを扱うには見合う容量のRAMを用意しなければならず高コストとなる。
リレーショナルデータベースのように永続的なデータ保管に用いることは稀で、システムが頻繁に読み出すデータの複製を高速に配信するキャッシュサーバとして用いられることが多い。
データの永続化の仕組みも持っており、ある瞬間のメモリ上のデータを丸ごとストレージに写し取るスナップショット、データが更新されるたびに更新履歴を記録していくトランザクションログなどの機能が利用できる。
他のコンピュータに複製を作る機能があり、更新が可能な1台の「マスター」と、その複製である読み出し専用の複数台の「スレーブ」という構成にすることで大規模化を図ることができる。
2009年にイタリアのサルバトーレ・サンフィリッポ(Salvatore Sanfilippo)氏が開発を始めたもので、BSDライセンスに基いてオープンソースとして公開されている。非常に多くのプログラミング言語に対応していることでも知られる。
(2020.4.9更新)