NoSQLデータベースとRedisの概要
従来のリレーショナルデータベース(MySQLなど)とは異なり、NoSQLデータベースは異なるアプローチを取ります。SQLとNoSQLの主な違いを見てみましょう。
構造化ストレージ vs 非構造化ストレージ
SQL(構造化ストレージ):
| id | name | age |
|---|---|---|
| 1 | 山田太郎 | 28 |
| 2 | 佐藤花子 | 32 |
NoSQL(非構造化ストレージ):
| key | value |
|---|---|
| id | 1 |
| name | 山田太郎 |
| age | 28 |
またはドキュメント形式:
{id: 2, name: "佐藤花子", age: 32}
リレーショナル vs 非リレーショナル
SQL: 外部キーを使用してテーブル間の関係を確立します。
NoSQL: ドキュメント形式でデータを格納し、関係をネストして表現します。
{
id: 1,
name: "山田太郎",
orders: [
{
id: 1,
item: {
id: 10,
title: "商品A",
price: 1999
}
},
{
id: 2,
item: {
id: 20,
title: "商品B",
price: 2999
}
}
]
}
Redisの特徴
Redis(Remote Dictionary Server)は、メモリベースのキー値型NoSQLデータベースです。主な特徴:
- 多様なデータ構造をサポートするキー値型ストア
- シングルスレッド処理によるコマンドの原子性
- メモリベースによる低レイテンシと高速処理
- ディスクへのデータ永続化サポート
- マスタースレーブレプリケーションとシャーディング対応
- 多言語クライアントサポート
Linux環境へのRedisインストール
必要な環境準備
Redisをインストールする前に、Linux環境を準備します。CentOS 7を例に説明します。
Redis依存関係のインストール
RedisはC言語で書かれているため、まずgcc依存関係をインストールします:
yum install -y gcc tcl
Redisのダウンロードと展開
Redisの公式サイトから安定版をダウンロードし、展開します:
cd /usr/local/src
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar -xzf redis-6.2.6.tar.gz
Redisのコンパイルとインストール
Redisをコンパイルしてインストールします:
cd redis-6.2.6
make && make install
インストールが完了すると、/usr/local/binディレクトリにRedis関連の実行ファイルが配置されます。
Redisの起動方法
デフォルト起動
最も簡単な起動方法ですが、フォアグラウンドで実行されるためターミナルを占有します:
redis-server
停止するにはCtrl+Cを押します。
設定ファイル指定起動
バックグラウンドで実行するには設定ファイルを変更します:
- 設定ファイルのバックアップを作成:
cp redis.conf redis.conf.bck - 設定ファイルを編集:
vi redis.conf - 主な設定項目を変更:
# すべてのIPアドレスからのアクセスを許可 bind 0.0.0.0 # バックグラウンド実行を有効化 daemonize yes # パスワード認証を設定 requirepass redis123 - Redisを起動:
cd /usr/local/src/redis-6.2.6 redis-server redis.conf - プロセスを確認:
ps -ef | grep redis - Redisを停止:
kill -9 [プロセスID]
システムサービスとしての自動起動設定
- システムサービスファイルを作成:
vi /etc/systemd/system/redis.service - 以下の内容を記述:
[Unit] Description=Redis Server After=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown PrivateTmp=true [Install] WantedBy=multi-user.target - システムサービスを再読み込み:
systemctl daemon-reload - Redisを起動:
systemctl start redis - 状態を確認:
systemctl status redis - 自動起動を有効化:
systemctl enable redis
Redisクライアントの使用方法
コマンドラインクライアント
Redisに付属しているコマンドラインクライアントの使用方法:
redis-cli [options] [commands]
主なオプション:
-h [ホスト名]: 接続先RedisサーバーのIPアドレス(デフォルト: 127.0.0.1)-p [ポート番号]: 接続先Redisサーバーのポート(デフォルト: 6379)-a [パスワード]: Redisの認証パスワード
使用例:
# Redisサーバーに接続してpingを送信
redis-cli -h 192.168.1.100 -p 6379 -a redis123 ping
# 対話モードで接続
redis-cli -h 192.168.1.100 -p 6379
# 認証
AUTH redis123
# pingコマンドを実行
ping
GUIクライアント
Redisの操作を視覚的に行うためのGUIツールも利用できます。例えば:
- RedisInsight(Redis公式ツール)
- AnotherRedisDesktopManager
- Medis(macOS用)
これらのツールを使用する際は、接続先サーバーのファイアウォール設定でRedisのポート(デフォルト: 6379)が開放されている必要があります。
# ファイアウォールを一時的に停止(テスト環境のみ)
systemctl stop firewalld