91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決PHP session文件獨占鎖引起阻塞的問題

發布時間:2021-06-29 10:13:35 來源:億速云 閱讀:110 作者:chen 欄目:開發技術

這篇文章主要講解了“怎么解決PHP session文件獨占鎖引起阻塞的問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么解決PHP session文件獨占鎖引起阻塞的問題”吧!

PHP默認的會話處理器是session.save_handler = files(即文件)。如果同一個客戶端同時并發發送多個請求(如ajax在頁面同時發送多個請求),且腳本執行時間較長,就會導致session文件阻塞,影響性能。因為對于每個請求,PHP執行session_start(),就會取得文件獨占鎖,只有在該請求處理結束后,才會釋放獨占鎖。這樣,同時多個請求就會引起阻塞。解決方案如下:

(1)修改會話變量后,立即使用session_write_close()來保存會話數據并釋放文件鎖。

session_start();
 
$_SESSION['test'] = 'test';
session_write_close();
 
//do something

(2)利用session_set_save_handler()函數是實現自定義會話處理。

function open($savePath, $sessionName)
{
  echo 'open is called';
  return true;
}
 
function close()
{
  echo 'close is called';
  return true;
}
 
function read($sessionId)
{
  echo 'read is called';
  return '';
}
 
function write($sessionId, $data)
{
  echo 'write is called';
  return true;
}
 
function destroy($sessionId)
{
  echo 'destroy is called';
  return true;
}
 
function gc($lifetime)
{
  echo 'gc is called';
  return true;
}
 
session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
register_shutdown_function ( 'session_write_close' );
 
session_start();
 
$_SESSION['foo'] = "bar";

當然,在 php 5.4.0之后,你可以通過實現 SessionHandlerInterface 接口或繼承 SessionHandler 類來使用。

class MySessionHandler extends SessionHandler {
 
  public function __construct()
  {
  }
 
  public function open($save_path, $session_id)
  {
  }
 
  public function close()
  {
 
  }
 
  public function create_sid()
  {
  }
 
  public function read($id)
  {
  }
 
  public function write($id, $data)
  {
  }
 
  public function destroy($id)
  {
  }
}
 
$handler = new MySessionHandler();
 
//第2個參數將函數 session_write_close() 注冊為 register_shutdown_function() 函數。
session_set_save_handler($handler, true);

你可以對上面的代碼進行具體實現和封裝,利用mysql或其它內存數據庫來管理會話數據。還能解決使用集群
時,session數據共享問題。

感謝各位的閱讀,以上就是“怎么解決PHP session文件獨占鎖引起阻塞的問題”的內容了,經過本文的學習后,相信大家對怎么解決PHP session文件獨占鎖引起阻塞的問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

多伦县| 北京市| 东乡县| 云浮市| 祁东县| 康马县| 泽州县| 凉山| 台江县| 泽普县| 咸宁市| 丹江口市| 甘德县| 元阳县| 启东市| 镶黄旗| 佳木斯市| 河西区| 乐亭县| 平和县| 合江县| 平南县| 乐陵市| 筠连县| 靖宇县| 满城县| 佛坪县| 若羌县| 阿坝| 驻马店市| 临安市| 石首市| 南雄市| 许昌县| 兴隆县| 什邡市| 高邮市| 全南县| 砚山县| 手机| 图木舒克市|