ホームページ  >  記事  >  バックエンド開発  >  PHP セッション ファイルの排他ロックによるブロック問題の解決策、_PHP チュートリアル

PHP セッション ファイルの排他ロックによるブロック問題の解決策、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:54:14894ブラウズ

PHP セッション ファイルの排他ロックによって引き起こされるブロック問題の解決策、

PHP のデフォルトのセッション ハンドラーは session.save_handler = files (つまり、ファイル) です。同じクライアントが複数のリクエストを同時に送信し (ajax がページ上で同時に複数のリクエストを送信するなど)、スクリプトの実行時間が長い場合、セッション ファイルがブロックされ、パフォーマンスに影響します。 PHP はリクエストごとに session_start() を実行するため、ファイルの排他ロックを取得し、排他ロックはリクエストが処理された後にのみ解放されます。このように、複数のリクエストを同時に行うとブロックが発生します。解決策は次のとおりです:

(1) セッション変数を変更したら、すぐに session_write_close() を使用してセッションデータを保存し、ファイルのロックを解除します。

リーリー

(2) session_set_save_handler()関数を使用してカスタムセッション処理を実装します。

リーリー

もちろん、PHP 5.4.0以降では、SessionHandlerInterfaceインターフェースを実装したり、SessionHandlerクラスを継承したりすることで利用できます。

リーリー

上記のコードを具体的に実装してカプセル化し、mysql またはその他のメモリ内データベースを使用してセッション データを管理できます。クラスターの使用の問題も解決できます
セッション データ共有の問題が発生したとき。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/998560.html技術記事 PHP セッション ファイルの排他ロックによって引き起こされるブロック問題の解決策は、PHP のデフォルトのセッション ハンドラーは session.save_handler = files (つまり、ファイル) です。同じクライアントが同時に複数を同時に送信した場合...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。