Upstash RedisでLaravelのセッション管理を強化する方法
HTTPはステートレス(状態を持たない)なプロトコルです。つまり、サーバーへの各リクエストは完全に独立しており、以前のリクエストに関する情報は一切保持されません。認証情報やユーザーの設定など、ユーザー固有のデータを複数のリクエストにまたがって保持する必要がある動的なWebアプリケーションを構築する際には、これが大きな課題となります。この制限を克服するために、Webアプリケーションでは「セッション」を利用して、リクエスト間でデータを保存・取得しています。
最も人気のあるPHPフレームワークの一つであるLaravelは、こうしたステートフルな要件に対応できる、柔軟かつ堅牢なセッション管理システムを標準で備えています。
LaravelのデフォルトのセッションドライバーはSQLiteデータベースを使用しますが、それ以外にも複数のドライバーをサポートしており、中でも最も強力でスケーラブルなのがRedisです。
この記事では、LaravelでRedisをセッションドライバーとして設定し、パフォーマンスとスケーラビリティを向上させながら、HTTPのステートレス性を克服する方法を解説します。
データベースの作成
Upstash Redisは、完全マネージド型のサーバーレスRedis互換サービスです。わずか数秒でデータベースをセットアップでき、充実した無料枠も用意されているため、契約の縛りを気にせず機能を試すことができます。
まずはUpstashで無料アカウントに登録し、Redis互換データベースを作成しましょう。

Laravelの設定
Redisデータベースを作成したら、次はそれをセッションドライバーとして使うようLaravelを設定します。
必要な.envファイルの設定内容は、Upstashコンソールの「Connect to your database」セクションからコピーできます。

設定内容は以下のような形式になっています。
REDIS_HOST="tls://nearby-lioness-11228.upstash.io"
REDIS_PORT=6379
REDIS_PASSWORD="********"
# Upstash Redisをキャッシュストアとして使う場合は、以下の2行のコメントを解除:
#CACHE_STORE="redis"
#REDIS_CACHE_DB="0"
# Upstash Redisをセッションドライバーとして使う場合は、以下の行のコメントを解除:
#SESSION_DRIVER="redis"
# Upstash Redisをキュー接続として使う場合は、以下の行のコメントを解除:
#QUEUE_CONNECTION="redis"
設定はほぼ完了です。.envファイル内のSESSION_DRIVER変数のコメントを解除するだけで、すべてが動作するようになります。
REDIS_HOST="tls://nearby-lioness-11228.upstash.io"
REDIS_PORT=6379
REDIS_PASSWORD="********"
# Upstash Redisをキャッシュストアとして使う場合は、以下の2行のコメントを解除:
#CACHE_STORE="redis"
#REDIS_CACHE_DB="0"
# Upstash Redisをセッションドライバーとして使う場合は、以下の行のコメントを解除:
SESSION_DRIVER="redis"
# Upstash Redisをキュー接続として使う場合は、以下の行のコメントを解除:
#QUEUE_CONNECTION="redis"
これで完了です!アプリケーションを実行すると、Laravelは自動的にUpstash Redisをセッションドライバーとして使用するようになります。
まとめ
この記事はあっという間に読めてしまうほど短いものでしたが、それは裏を返せば、LaravelとUpstash Redisをセッションドライバーとして統合することがいかに簡単かを示しています。この記事が読者のお役に立ち、RedisとLaravelについてさらに深く学ぶきっかけとなれば幸いです。
ご質問やフィードバックがございましたら、X(旧Twitter)でお気軽にお問い合わせください。
-
Redis GEODISTコマンド徹底解説 – 地理空間データの2つのメンバー間の距離を取得する方法
このチュートリアルでは、キーに保存された地理空間値(ジオスペーシャルデータ)の2つのメンバー間の距離を取得する方法について学びます。この目的のために、RedisのGEODISTコマンドを使用します。 GEODISTコマンドとは GEODISTコマンドは、キーに保存された地理空間値(ソート済みセット)のうち、指定した2つのメンバー間の距離を、指定した単位で返すために使用されます。指定されたメンバーの一方または両方が地理空間値に存在しない場合は、nullが返されます。 指定できる単位は以下の4種類です。 m:メートル(デフォルト) km:キロメートル mi:マイル ft:フィート キーが存在し
-
Redis初のアンバサダー制度「Redis Insiders」プログラム発表
Redisはこのたび、初となるアンバサダープログラム「Redis Insiders(レディス・インサイダーズ)」を立ち上げました。 Redisはオープンソースとして世界中で何百万人ものユーザーに利用されており、開発者コミュニティは私たちのプロダクトの中心的存在です。最も熱心で情熱的なコミュニティメンバーの皆さまと協力し、Redisについて世界へ発信しながら、皆さんのプレゼンス向上も後押ししていきたいと考えています。 Redisを活用している開発者で、コードについて書いたり話したりするのが好きな方なら、Redis Insiderになれるチャンスがあります。特に、テック業界において少数派(アンダー