laravelにおけるsessionの保存場所の比較


laravelにおいてsessionの保存場所は主に4種類


file(デフォルト)
デフォルトで設定されており、アプリケーションサーバーの「storage/framework/sessions」に保存されている
アプリケーションサーバーに依存するため、複数のサーバーを立てて運用するサービスの場合は利用できない
一回のsessionにつき一つのファイルが生成されるのでファイルシステムの負担大


cookie
クライアント側のcookieに全てを保存する方法
サーバーに依存しないのでサーバーの負荷を気にしなくてよい
ユーザー側に保存するため改ざん等のセキュリティリスクがある
保存できる容量が少ない(4KB)


database
サーバーに負担を掛けず、セキュアで容量の制限もない
ただRDBは大量の同時I/O(input/output)に弱いので、アクセスが増えるとデータベースが一気にパンクする。しかもスケールしづらい。


redis
CookieにセッションIDだけ持たせて、Memcached、RedisなどサーバサイドのKVSに実データを置く方法。
サーバサイドにデータがあるので改ざんを回避できる
データ容量制限がない
サーバサイドでセッションの破棄ができる
アプリケーションサーバを分散させても一貫性を持たせられる
大量の同時I/Oに強く、アクセスが増大しても大丈夫!
ただ、セッション専用にひとつデータベースが追加されるのでコストが増

この記事が気に入ったらサポートをしてみませんか?