php session會話如何寫入redis

來源:互聯網
上載者:User
Session:在電腦中,尤其是在網路應用中,稱為"會話控制"。那麼本文就和大家分享session會話如何儲存到redis,有需要的趕緊來學習一下吧。

php的session會話預設時以檔案形式儲存在php.ini設定檔設定的會話緩衝目錄,檔案儲存會話的效率很低,每當每個使用者登入一次就會在伺服器上產生一個唯一的session_id檔案,當使用者登入量達到幾十萬層級的時候,就會有幾十萬個檔案在伺服器產生,這時候磁碟的會話目錄的IO讀寫會非常的慢,導致使用者登入時程式會花費大量的時間在會話檔案的讀寫上。當大量的使用者登入時讀寫能力不夠,導致的檔案是會被第一個操作session的進程鎖定,其他請求阻塞。請求會掛起在session_start()直到session檔案解鎖。這時候就需要最佳化登入慢的問題了。

由於鎖定的session檔案直到指令碼執行結束或者session正常關閉才會解鎖,為了防止大量的php請求(需要使用$_SESSION資料)被鎖定,可以在寫完session後馬上關閉,這樣就釋放了鎖。

//開啟會話session_start();//寫入會話$_SESSION['is_login']=1;//寫入會話後關閉上一個會話檔案的寫入session_write_close();

php session 會話寫入到redis

redis資料時儲存在電腦記憶體條中啟動並執行,電腦的記憶體條的速寫速度時硬碟的幾十倍,所以如果把php session寫入到redis緩衝中,速度會提高很多。配置方法:

//方式一,在php指令碼中設定更改php會話寫入方式<?phpini_set("session.save_handler","redis"); ini_set("session.save_path","tcp://127.0.0.1:6379");//如果有密碼ini_set("session.save_path","tcp://127.0.0.1:6379?auth=password");?>
//修改php的設定檔php.inisession.save_handler = redis session.save_path = "tcp://127.0.0.1:6379"//如果有密碼session.save_path = "tcp://127.0.0.1:6379?auth=password"

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.