PHP session垃圾回收機(jī)制實(shí)例分析
本文實(shí)例講述了PHP session垃圾回收機(jī)制。分享給大家供大家參考,具體如下:
session過(guò)期時(shí)間
在php.ini文件中有這樣一個(gè)配置,這個(gè)配置表示session文件過(guò)期時(shí)間,默認(rèn)的話是1440秒,也就是24分鐘,這個(gè)24分鐘是session的發(fā)呆時(shí)間,如果在24分鐘內(nèi)沒(méi)有對(duì)session進(jìn)行操作,那么session文件就會(huì)過(guò)期,如果在23分鐘的時(shí)候操作了session,那么就會(huì)又有24分鐘的過(guò)期時(shí)間,如果過(guò)期了,該session被服務(wù)器認(rèn)為是垃圾。
session.gc_maxlifetime = 1440
垃圾回收機(jī)制控制
還有這樣的兩個(gè)配置,服務(wù)器每次session_start的時(shí)候,都有可能啟動(dòng)垃圾回收機(jī)制去刪除垃圾文件,這個(gè)概率為session.gc_probability / session.gc_divisor。
session.gc_probability = 1 session.gc_divisor = 1000
案例
我們可以這樣進(jìn)行配置,來(lái)體會(huì)一下session垃圾回收機(jī)制。
session.gc_maxlifetime = 60 session.gc_probability = 1000 session.gc_divisor = 1000
這樣session的過(guò)期時(shí)間為60秒,還有就是每次session_start的時(shí)候都會(huì)去開(kāi)啟gc,然后刪除垃圾。
然后寫(xiě)一個(gè)腳本:gc.php
<?php session_start();
測(cè)試
1、然后第一次啟動(dòng)瀏覽器去請(qǐng)求gc.php,然后關(guān)閉瀏覽器,這個(gè)時(shí)候會(huì)產(chǎn)生第一個(gè)session文件,如果沒(méi)有配置的話,默認(rèn)是在C:\Window\Temp目錄下,這個(gè)目錄也可以進(jìn)行配置。
2、第二次啟動(dòng)瀏覽器去請(qǐng)求gc.php,然后關(guān)閉瀏覽器,這個(gè)時(shí)候會(huì)產(chǎn)生第二個(gè)session文件
3、第三次啟動(dòng)瀏覽器去請(qǐng)求gc.php,不關(guān)閉瀏覽器,然后不斷的去刷新gc.php,都會(huì)去調(diào)用session_start方法,由于我們前面進(jìn)行了相應(yīng)的配置,所以每次session_start的時(shí)候都會(huì)去調(diào)用gc,然后gc去檢測(cè)一下是否有垃圾文件,如果有垃圾文件,就將其刪除,我們會(huì)看到前兩個(gè)文件一個(gè)一個(gè)的被刪除。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php緩存技術(shù)總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP錯(cuò)誤與異常處理方法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php實(shí)現(xiàn)可用于mysql,mssql,pg數(shù)據(jù)庫(kù)操作類
這篇文章主要介紹了php實(shí)現(xiàn)可用于mysql,mssql,pg數(shù)據(jù)庫(kù)操作類,以類的形式封裝了對(duì)mysql,mssql,pg三種數(shù)據(jù)庫(kù)的操作,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
php 無(wú)法加載mysql的module的時(shí)候的配置的解決方案引發(fā)的思考
今天配置php 的時(shí)候,發(fā)現(xiàn)沒(méi)配起mysql ,wordpress提示我需要 mysql 的module之后上google搜索,大多數(shù)都是說(shuō)php.ini 沒(méi)加載起2012-01-01
PHP常用開(kāi)發(fā)函數(shù)解析之?dāng)?shù)組篇[未完結(jié)]
數(shù)組處理函數(shù)在PHP開(kāi)發(fā)中非常常見(jiàn),學(xué)習(xí)好數(shù)組處理函數(shù)至關(guān)重要.數(shù)組處理函數(shù)在實(shí)際應(yīng)用中涉及到:數(shù)組的創(chuàng)建,字符串于數(shù)組的相互轉(zhuǎn)換,數(shù)組轉(zhuǎn)XML,數(shù)組轉(zhuǎn)JSON.數(shù)組的檢測(cè).數(shù)組的合并于分割.數(shù)組的數(shù)目.獲取數(shù)組中的所有值,獲取數(shù)組中的所有鍵值2012-07-07
php實(shí)現(xiàn)session自定義會(huì)話處理器的方法
這篇文章主要介紹了php實(shí)現(xiàn)session自定義會(huì)話處理器的方法,可通過(guò)設(shè)置session.save_handler為user來(lái)調(diào)用自定義的回調(diào)函數(shù),從而實(shí)現(xiàn)session自定義會(huì)話處理器的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-01-01
PHP實(shí)現(xiàn)抓取HTTPS內(nèi)容
這篇文章主要介紹了PHP實(shí)現(xiàn)抓取HTTPS內(nèi)容,以及遇到的問(wèn)題的解決方法,需要的朋友可以參考下2014-12-12
詳解PHP的Laravel框架中Eloquent對(duì)象關(guān)系映射使用
這篇文章主要介紹了PHP的Laravel框架中Eloquent對(duì)象關(guān)系映射使用,重點(diǎn)講述了Eloquent的數(shù)據(jù)模型間關(guān)系,需要的朋友可以參考下2016-02-02
php實(shí)現(xiàn)的簡(jiǎn)單數(shù)據(jù)庫(kù)操作Model類
這篇文章主要介紹了php實(shí)現(xiàn)的簡(jiǎn)單數(shù)據(jù)庫(kù)操作Model類,結(jié)合實(shí)例形式分析了php數(shù)據(jù)庫(kù)操作模型類的定義與使用技巧,包括數(shù)據(jù)庫(kù)的基本增刪改查等功能,需要的朋友可以參考下2016-11-11

