MENU
Archives

NoSQL「Redis」とは? RDBMSとの違いや特徴について

“データベース”と聞くとどんな製品を思い浮かべますか?
「業務でもデータベースからデータを抽出してるけど、どんな製品があるか、や製品ごとの特徴はあまり知らない。」
「オープンソースで利用できるMySQL、PostgreSQLはプライベートでも利用しているよ。」
など人によって反応は違ってくるかと思います。

オープンソースは、有志の開発者コミュニティで開発され、無償で自由に利用ができるものですが、同じくオープンソースのインメモリ型データベースシステムであるRedisはご存じでしょうか。

本記事では、情報システム部門のコンサルティングやBIツールでのデータの可視化・分析などデータ活用に関する多くの知見のある株式会社KUIXがこれまでの経験をもとにオープンソースのインメモリ型データベースシステムである「Redis」にフォーカスし、Redisの概要やRDBMSとの違いなどを解説いたします。

目次

Redis とは

Redisを一言で表すと、Redis Ltd.が提供するオープンソースのインメモリ型データベースシステムです。
Redisは、REmote DIctionary Serverの略称で、「レディス/レディース」と呼ばれます。
また、コンピューターのメモリ(主記憶装置)上でデータを管理するデータベースのため、ハードディスクとメモリ間を行き来せず、データの読み書きが非常に高速なデータベースとなっています。

なお、Redisは、連想配列(キー・バリュー)/リスト/セット/ストリームなどの様々なデータ構造を扱うことができるNoSQLデータベースとなっています。データを列と行の形式(Excelのような表形式)で格納するRDBMSとは、扱えるデータ、データ構造が異なり、用途にあわせてデータを効率的に管理することができます。

補足:データベース とは

「そもそもデータベースってなに?」という方もいらっしゃると思います。
データベースを一言で表すと、「使いやすい形で整理されたデータの集まり」です。

データベースを単にデータの集まりと考えた場合、データの集まりを「山」として、「この山に生えている杉の木を教えてください。」と聞かれた場合に困ってしまいますよね。
では、「山」が「杉の木エリア」、「松の木エリア」、「キノコエリア」・・・と分かれていたらどうでしょう。
すぐ「杉の木エリア」に杉の木が生えていることが分かりますよね。

このように、データベースは、「必要な時に必要なデータをすぐに取り出せる」使いやすく整理されたデータの集まりです。

補足:データベースの種類

データベースには、RDB(リレーショナルデータベース)や「階層型データベース」、「ネットワーク型データベース」、「NoSQL」があります。
それぞれのデータベースの概要、特徴は以下のようになっています。

〇階層型データベース
・概要
ツリーのようにデータを関連付けて格納するデータベース
・特徴
特定のデータに紐づくデータは、1:多のため、データの抽出(検索)速度が早い。
・その他
他のデータとの関連付けを行う際は、データの重複登録が必要。(データ構造に依存したDB利用が必要。)

〇ネットワーク型データベース
・概要
関連性のあるデータを相互に関連付けて格納するデータベース
・特徴
特定のデータに紐づくデータは、基本的に多:多のため、データの重複登録を回避することができる。
・その他
データの重複登録は回避できるが、データ構造に依存したDB利用が必要。

〇リレーショナルデータベース(RDB)
・概要
テーブル(1つのデータのかたまり)にデータを列と行の形式(Excelのような表形式)で格納し、行(レコード)単位でデータを操作するデータベース
・特徴
表形式で柔軟なデータの取り扱いをすることができる。
・その他
プログラムが複雑化しやすい。

〇NoSQL
・概要
上記以外のデータベースで、RDBのような表形式などではなく、データを様々な形式で格納するデータベース。
・特徴
RDBでは対応できないデータや大容量データを処理できる。
・その他
データの整合性や一貫性は保証されない。

補足:RDBMS (リレーショナルデータベース管理システム) とは

RDBMSは、リレーショナル・データベース・マネジメント・システムの略称で、RDB(リレーショナルデータベース)を管理するためのソフトウェアです。
RDB(リレーショナルデータベース)は、テーブル(1つのデータのかたまり)にデータを列と行の形式(Excelのような表形式)で格納し、行(レコード)単位でデータを操作するのが特徴です。

なお、RDB(リレーショナルデータベース)はテーブル間にリレーション(関係性)を持たせることができるため、顧客データと受注データを「顧客ID」で紐づけることもできます。
データベースには、「階層型データベース」や「ネットワーク型データベース」がありますが、データベースといえば、RDB(リレーショナルデータベース)を指すことも多く、RDB(リレーショナルデータベース)が主流となっています。

なお、代表的なRDBMSは以下があります。
・Oracle Database(Oracle)
・Microsoft SQL Server(Microsoft)
・IBM DB2(IBM)
・MySQL
・Postgre SQL

Redisの特徴

Redisの概要やデータベースの種類などは理解できましたでしょうか。
ここからは、Redisの数多くある特徴の中で3つの特徴を解説します。

高速にデータの読み書きができる

まず1つ目は、高速にデータの読み書きができることです。
前述の通り、Redisは、コンピューターのメモリ(主記憶装置)上でデータを管理するデータベースのため、ハードディスクとメモリ間を行き来しないため、データの読み書きが非常に高速なデータベースとなっています。

データの永続化機能がある

2つ目は、データの永続化機能があることです。
Redisは、前述の通り、インメモリ型データベースとなっており、通常、メモリ上のデータ揮発性のため、再起動などによりデータは削除されてしまいますが、メモリ上のデータを任意のタイミングで、ハードディスクに保存する仕組みが2つあります。
①RDB(Database Backup File)
任意のタイミングでスナップショットとして、保存する方法です。
速度面への影響は少ないですが、障害発生直前の状態に復旧することは難しい方法です。

②AOF(Append Only File)
データベース操作の全操作ログを保存する方法です。
障害発生直前の操作を保持できるため、障害発生直前の状態に復旧することができますが、速度面としては遅くなります。

レプリケーション機能がある

最後は、レプリケーション機能があることです。
Redisには、マスター・スレーブ型レプリケーションの機能を持っています。
1つのマスターデータに対して、複数のスレーブを作成し、マスターデータとスレーブ間でデータを同期しながら、データの読み書きができるため、負荷分散をすることができます。

まとめ

オープンソースのインメモリ型データベースシステムである「Redis」の概要やRDMBSとの違いについてご紹介しました。

ビジネスデータが集まっているERP製品内のデータや業務システムで利用しているデータベース内のデータを活用して、
「まずはデータを蓄積したい。」
「自社に最適なデータベースを検討している。」
といった方はMariaDBの導入を検討されてみてはいかがでしょうか。

KUIXではただ導入・開発するだけでなく、導入後の利活用を実現することに着眼した、データレイク・DWH・データマート・BIツールの選定・導入からレポート作成、運用、啓蒙・展開までトータルのコンサルテーションなどを行っています。
「データマート/データレイク/DWH/BIツールを導入したい」
「すでに導入しているがデータ活用、展開が進んでいない」など
お困りの方は、ぜひお気軽にご連絡ください!お問い合わせはこちらから

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次