KUSANAGIのデータベースと言えばMariaDB(MySQL)ですが、マシンのプロセスを監視してると Redis サーバーが起動しています。
どうやら、Premium Edition についている WEXAL が使ってるらしい。
Redis はここ数年注目されてる非リレーショナルなデータベースです。
Redis ってなんだ?
Redis は、最近注目されている非リレーショナルなデータベースのソフトウェアのひとつです。
『非リレーショナルって何?』と思うでしょうが、かんたんに言うとテーブルという概念がありません。
データの保存の仕方がシンプルで高速な操作ができる特長があります。
Redis はその中でもキー・バリュー型と呼ばれるもので、データ本体にあたるバリューとそれを識別するキーの対で保存します。
Key | Value |
---|---|
SQLを使わないことからNoSQLデーターベースとも呼ばれる。
また Redis はデータをメインメモリ上に保存し、ファイルアクセスがないのでその点でも高速です。インメモリデータベースと言います。
この説明に納得できない人も多いでしょうが、非リレーショナル、NoSQL、インメモリなど、既存のデータベースとはちがった概念で Redis はできてます。
すべてを説明しようとすると何時間あっても足りません。
今回はこのへんで勘弁してください。似たような製品にはMongoDBというのもあります。
元々、非リレーショナルなNoSQL型のデータベースは存在した。
しかし、長年テーブルでデータを管理する関係データベース(RDB)が主流だったことからマニアックな存在になっていた。
最近いきなり出てきた概念ではなく、複雑になりすぎたRDBに対して再注目されたというのが正しい。
LinuxでのRedisの確認
じつはボクは、KUSANAGI Premium Edition を使ってるのに、WEXALは停止してます。
しかし、WEXALのプロセスは起動しているよう。htopコマンドで確認していたら、redis-server というプロセスが常駐していました。
この Redis サーバーは、systemctlでも確認できます。
systemctl status redis
● redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/redis.service.d
└limit.conf
Active: active (running) since 日 2021-11-07 08:18:12 JST; 5 months 11 days ago
Main PID: 46775 (redis-server)
Status: "Ready to accept connections"
CGroup: /system.slice/redis.service
└46775 /usr/bin/redis-server 127.0.0.1:6379
Linuxではおなじみの、dnf(yum)などのパッケージ管理コマンドでインストールできるようなので、導入はかんたんそうですね。
ちなみにRedisは、MySQLなどの関係データベースの完全な代替としては使いません。
メインメモリ上にデータを保存するのでサーバーのメモリを喰うし、メインメモリ上から比較的ショートサイクルの定期的なバックアップを作成するなどの設定が必要です。
だからKUSANAGIでも、メインのデータベースは MariaDB を使ってます。
RedisやMongoDBは、データの型を意識せず、とりあえず保存していく使い方に向いている。
(データ型がないというわけではない。)
関係データベースのSQLに相当するデータ同士の連携はデータを扱うシステム側で実装する。