RedisはKey-Value型のデータベースです。
Key-Value型はその名の通りKey(検索するのに使う情報)とValue(実際に必要な情報の中身)で構成されます。
KeyとValueは1対1ですが、実際にはValueに区切り文字を使って、複数の情報を格納したりします。
以下はKey-Value型のデータベースに天気を格納した例です。
9/20 | 晴れ; 32℃; 24℃; 20% |
9/21 | 曇り; 30℃; 23℃; 40% |
9/22 | 雨; 28℃; 23℃; 80% |
Key-Value型のValueには区切り文字で複数の情報が格納できる
この場合、ソフトウェアでKeyである日付を指定すると、Valueにある「;」で区切られた4つの情報「天気」「最高気温」「最低気温」「降水確率」を得ることが出来ます。
あとは、ソフトウェアの側で「;」で分解した情報を利用するという案配です。
なお、Key-Value型のデータベースではValueの値を検索するのは苦手です。上記の例では「最高気温が30℃以上の日」といった検索はかなり難しいです。
前回インストールしたMariaDBのようなリレーショナルデータベースであれば「日付」「天気」「最高気温」「最低気温」「降水確率」と5列作ればそれぞれで条件を付けて検索出来て便利なのに、なぜわざわざKey-Value型のデータベースを使うのでしょうか。
これはKey-Value型の構造が単純で高速化させやすいからです。
また、Redisも含めたKey-Value型のデータベースの多くはディスクドライブ(HDDやSSD)ではなく、メモリ上にデータを保持しているので、なお早いです。
実際に天気のデータを高速に書き換えたり読み出す必要はあまりないでしょうから天気のデータをKey-Value型にする意義は薄いです。
目まぐるしく書き換える必要のある情報、例えば3Dゲームでのキャラクターの座標を扱ったりする際には使えそうですね。
実際にはWebサービスでのキャッシュ(一度読み込まれた情報を高速に呼び出すために保持しておくもの)として使われる事が多く、PHPを使ったサービスの高速化でよく使われます。勿論、Wordpressも例外ではありません。
ちなみに、Key-Value型データベースのようなリレーショナルデータベース以外のデータベースをまとめてNoSQLと言います。SQLではないということです。どれだけデータベースと言えばリレーショナルデータベースとSQLというのが浸透しているかが表れていますね。
この記事で行うこと
- Redisのインストール
- 基本的な設定
続きを読む CentOS8にRedisをインストールする