php session redis 库,把php 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會話寫入方式

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"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值