首頁 >後端開發 >php教程 >php session會話如何寫入redis

php session會話如何寫入redis

小云云
小云云原創
2018-01-25 14:37:412165瀏覽

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会话写入方式
<?php
ini_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.ini
session.save_handler = redis 
session.save_path = "tcp://127.0.0.1:6379"
//如果有密码
session.save_path = "tcp://127.0.0.1:6379?auth=password"

相關推薦:

php中如何註冊和讀取Session會話

以上是php session會話如何寫入redis的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn