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 が返れば起動しています。
redis.conf の主要設定
設定ファイルは /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 # パスワードを設定した場合 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
PHP からの接続(phpredis + セッション保存)
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 からの接続(go-redis/v9)
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 を外部公開しない理由
Redis は認証が有効でも、デフォルト設定のまま外部に公開するとデータ漏洩・サーバー乗っ取りのリスクがあります。 UFW で Redis ポート(6379)を外部からブロックすることを推奨します。
sudo ufw deny 6379
Web サービス全体のセキュリティを高める
Redis は内部通信として使うのがベストです。フロントの Web サーバーに SSL証明書を導入することで、
ユーザーとの通信全体を暗号化し、セッションデータの盗聴を防ぐことができます。
エスロジカルではデジサート・サイバートラストの正規取扱代理店として、
RapidSSL 3,960円/1年(税込)〜で SSL証明書を販売しています。審査サポート・インストール代行も対応しています。
SSL証明書の購入はこちら / SSL証明書とは? / インストール代行サービス
関連ドキュメント
PHP + Apache 設定(Ubuntu 24.04) — PHP のインストールとセッションセキュリティ
Go 言語 Web アプリ入門 — Go によるサーバーサイド開発
UFW・Fail2ban 設定(Ubuntu 24.04) — ファイアウォールでポートを保護
