redisインストール方法

redisのインストール

既にインストールされているかの確認

確認方法コマンド確認できること
redis-serverコマンドで確認redis-server --versionコマンドとして使えるか
systemctlでサービス確認sudo systemctl status redisサービスとして動いてるか

redisをインストール

sudo dnf install redis

インストールが終わったら

sudo systemctl enable redis #サーバー再起動時に、自動でRedisを起動するよう設定
sudo systemctl start redis #今この瞬間、Redisサーバーを起動する

enableが成功しているか確認

systemctl is-enabled redis

edisサーバーがちゃんと動いているかの確認。「PONG」が返ればOK

redis-cli ping

php-redis拡張の導入

すでに入っているか

php -m | grep redis

AlmaLinuxでPHP関連を使うときは「Remiリポジトリ」がほぼ必須なのであるか確認

dnf repolist all | grep remi

インストール

sudo dnf install php-redis

PHP側にモジュールを読ませるためにapacheを再起動

sudo systemctl restart httpd

インストールできているか確認

php -m | grep redis

PHPから動作確認

Redis動作確認用 シンプルPHPスクリプト

<?php
// Redisに接続
$redis = new Redis();
$redis->connect('127.0.0.1', 6379); 
//127.0.0.1(ローカル)にRedis接続。
//6379はredisのデフォルトのポート番号

// テスト用にキーと値をセット
$redis->set('test_key', 'Hello, Redis!');

// セットした値を取り出して表示
$value = $redis->get('test_key');

echo "Redisから取得した値: " . $value;
?>

AOFモードを有効にする

すべての書き込みを確実にログに残し、再起動しても完全復元するためにAOFモードを有効にする。

現在のモードの確認

$ redis-cli CONFIG GET save
1) "save"
2) "3600 1 300 100 60 10000"

$ redis-cli CONFIG GET appendonly
1) "appendonly"
2) "no"

“3600 1 300 100 60 10000” の意味

時間(秒)変更件数意味
3600秒(1時間)1件以上の変更があったら保存
300秒(5分)100件以上の変更があったら保存
60秒(1分)10000件以上の変更があったら保存

結果から見た現在の挙動

項目状態説明
データ保存先メモリ+一定間隔でRDB保存保存は最大1時間遅れる可能性あり
サーバー再起動時保存済みのRDBから復元直前の変更は消える可能性あり
データ損失リスク小〜中(高頻度更新には不向き)テスト用途ならOK。本番用途なら改善推奨

/etc/redis/redis.conf に追記(または変更)

appendonly yes

反映

sudo systemctl restart redis

反映を確認

redis-cli CONFIG GET appendonly

monitで監視する

fidfileが見つからなかったので以下の書き方

#check process redis with pidfile /var/run/redis/redis.pid
check process redis with matching "redis-server"     # pidfileが見つからないのでこの書き方を採用
    start program = "/bin/systemctl start redis"     # Redisの起動コマンド
    stop program  = "/bin/systemctl stop redis"      # Redisの停止コマンド
    if failed port 6379 then restart                 # Redisがポート6379で応答しなければ再起動する
    if 5 restarts within 5 cycles then unmonitor     # 5回連続再起動に失敗したら監視を停止(アラート用)

sudo monit reloadsudo monit summary で確認

redisにデータを登録する

phpで登録するサンプルスクリプト

<?php
// MySQL接続
$db = new mysqli('localhost', 'ユーザー名', 'パスワード', 'データベース名');
if ($db->connect_error) {
    die("MySQL接続失敗: " . $db->connect_error);
}

// Redis接続
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// Redisのセット名(任意)
$set_name = 'words';

// MySQLから単語を取得
$result = $db->query("SELECT word FROM word_list");
if (!$result) {
    die("クエリ失敗: " . $db->error);
}

// Redisに追加
$count = 0;
while ($row = $result->fetch_assoc()) {
    $redis->sAdd($set_name, $row['word']);
    $count++;
}

echo "Redisに $count 件登録しました。";
?>

linuxで登録件数を確認

redis-cli SCARD words

登録内容の確認

$ redis-cli --raw
SMEMBERS words
タイトルとURLをコピーしました