私の PHP Web アプリケーションには、ファイル ベースのセッション メカニズムがあります。ユーザーがオンラインであるか、アイドル状態であるか、またはログアウトしているかを把握したいと考えています。現在、私は2つの解決策を念頭に置いていますが、どちらが優れているかわかりません。また、これら2つよりもうまく機能する代替手段があるかどうかもわかりません。私の要点は、DB にセッションを保存したくないので、ファイル ベースのセッションを使用するソリューションが必要だということです。
解決策 1:一意の user_id に基づいてセッション ファイルを作成し、ユーザーが何かを行うたびにセッションのタイムスタンプを更新すると、セッション ファイルが更新され、ディスクに再度書き込まれます。ユーザーがオンラインかどうかを確認したいときは、ユーザーの user_id を使用してセッション ファイルの最後のタイムスタンプを読み取ります。5 分未満の場合はオンラインであると想定し、5 分以上 10 分未満の場合はオンラインであると想定します。アイドル、それ以上のものはユーザーが外出していると思います。
解決策 2:ユーザー テーブルに last_login フィールドを作成することで同じことを行います。ユーザーがサイトで何かを行ったり、いくつかのページを表示したりするたびに、そのフィールドを最新のタイムスタンプで更新します。ユーザーがオンラインであることを確認したい場合は、 、彼の last_login タイムスタンプをチェックして、解決策 1 で説明したオンライン、アイドル、またはログアウト状態のいずれかに彼の時間が収まるかどうかを確認します。
だから私の質問は、どれがより速く、オーバーヘッドが少なくなるかということです。私の Web サイトには 5000 人のメンバーがいて、おそらく 1 日あたり 700 から 1200 人のメンバーがログインしています。VPS を持っていますが、すぐに専用サーバーに移動します。これら2つの解決策以外の提案はありますか?どれを選ぶ?
どうもありがとう!