質問: PHPでSESSION管理方法のメリットとデメリットが微妙に明確でなく、お聞きしたいです。 一般的(?)には特に設定せず、サーバー任せといった感じでsession_startを行い、$_SESSIONへ代入していくかと思うのですが、 データベースにSESSION用のテーブルを作成し、そちらを使用して管理していく方法もあるかと思います。 そこでそれぞれの管理方法のメリットとデメリットがあれば具体的に知りたいです。 パッと思いつく限りでは、データベース化した方がデータ削除などが行える為、 強制的にSESSIONをクリアしたりでき、良いのかな?と思うところですが、 データベース障害の際におかしなことになったりする?なども思ったりします。 双方をプロジェクトによって使い分けておられる方や、こういう理由でこちらの管理方法しか使わない!といったアドバイスが頂けたら幸いです。 よろしくお願い致します。
回答: 個人的には、Redisやmemcachedで管理する方法をよく使っています。 ファイル管理の場合: * メリット:標準で使える * デメリット:PHPサーバが複数台になると処理不能 RDBMS管理の場合: * メリット:PHPサーバが複数になっても対応できる * デメリット:処理が遅い Redisなどを使う場合 * メリット:処理は高速、PHPサーバ複数にも対応、タイムアウト設定できるので不要なデータが残らない * デメリット:サーバ設定の必要がある