株式会社エスロジカル
株式会社エスロジカル
SSL証明書(DV、OV、EV)、セキュリティ、Web開発、Linux開発、Go言語

HOME > 技術ドキュメント > Redis インストール・設定(Ubuntu 24.04 LTS)

Redis インストール・設定(Ubuntu 24.04 LTS)


Redis はオンメモリで動作する高速なデータストアで、キャッシュ・セッション管理・キューなどに広く使われます。 本記事では Ubuntu 24.04 LTS へのインストールから設定、PHP / Go からの接続例まで解説します。


sudo apt update
sudo apt install -y redis-server
sudo systemctl enable --now redis-server
redis-cli ping

PONG が返れば起動しています。


設定ファイルは /etc/redis/redis.conf です。

設定項目 説明・推奨値
bind 127.0.0.1 ローカルのみ Listen(デフォルト)。外部公開は原則禁止
requirepass 強いパスワード 認証パスワードを設定する(本番環境では必須)
maxmemory 256mb 使用メモリの上限。設定しないと全メモリを使い切る
maxmemory-policy allkeys-lru maxmemory 到達時に LRU で古いキーを削除(キャッシュ用途に最適)
save "" 永続化を無効化(純粋なキャッシュとして使う場合)
sudo nano /etc/redis/redis.conf
sudo systemctl restart redis-server

redis-cli
# パスワードを設定した場合
redis-cli -a 'パスワード'

127.0.0.1:6379> SET mykey "Hello"
127.0.0.1:6379> GET mykey
127.0.0.1:6379> EXPIRE mykey 60    # 60秒でキーを削除
127.0.0.1:6379> TTL mykey          # 残り時間を確認
127.0.0.1:6379> DEL mykey
127.0.0.1:6379> KEYS *             # 全キーを一覧(本番環境では使用注意)
127.0.0.1:6379> DBSIZE             # キー数を確認
127.0.0.1:6379> INFO memory        # メモリ使用状況
127.0.0.1:6379> QUIT

sudo apt install -y php-redis
sudo systemctl restart php8.3-fpm

PHP セッションを Redis に保存する設定(/etc/php/8.3/apache2/php.ini):

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379?auth=パスワード"

コードからの直接接続:

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('パスワード');

$redis->set('key', 'value', 300); // 300秒有効
$val = $redis->get('key');
echo $val;

go get github.com/redis/go-redis/v9
package main

import (
    "context"
    "fmt"
    "time"

    "github.com/redis/go-redis/v9"
)

func main() {
    rdb := redis.NewClient(&redis.Options{
        Addr:     "127.0.0.1:6379",
        Password: "パスワード",
        DB:       0,
    })

    ctx := context.Background()

    err := rdb.Set(ctx, "key", "value", 5*time.Minute).Err()
    if err != nil {
        panic(err)
    }

    val, err := rdb.Get(ctx, "key").Result()
    if err != nil {
        panic(err)
    }
    fmt.Println("key:", val)
}

Redis は認証が有効でも、デフォルト設定のまま外部に公開するとデータ漏洩・サーバー乗っ取りのリスクがあります。 UFW で Redis ポート(6379)を外部からブロックすることを推奨します。

sudo ufw deny 6379

Redis は内部通信として使うのがベストです。フロントの Web サーバーに SSL証明書を導入することで、 ユーザーとの通信全体を暗号化し、セッションデータの盗聴を防ぐことができます。
エスロジカルではデジサート・サイバートラストの正規取扱代理店として、 RapidSSL 3,960円/1年(税込)〜で SSL証明書を販売しています。審査サポート・インストール代行も対応しています。

SSL証明書の購入はこちら / SSL証明書とは? / インストール代行サービス


PHP + Apache 設定(Ubuntu 24.04) — PHP のインストールとセッションセキュリティ
Go 言語 Web アプリ入門 — Go によるサーバーサイド開発
UFW・Fail2ban 設定(Ubuntu 24.04) — ファイアウォールでポートを保護


← 技術ドキュメント一覧へ戻る