我們都知道php有自己的一個默認(rèn)session機制,就是你不設(shè)置任何session.handler的時候,它會用在臨時目錄下面存儲文件名類似sess_5pjm50b8d40p4175iousv4hqd3的一堆session文件,但是session是有過期時間的,而這些文件顯然不能無限增多,那么當(dāng)session過期以后這些文件會被回收嗎?是通過什么機制回收的呢?顯然php本身干不了這個事情,因為它的生命周期在腳本執(zhí)行完就結(jié)束了,沒有長駐內(nèi)存的程序來回收這些文件,難道就放任不管嗎?
2 回答

陪伴而非守候
TA貢獻(xiàn)1757條經(jīng)驗 獲得超8個贊
session.gcprobability = 1
session.gcdivisor = 100
session.gc_maxlifetime = 1440
這三個配置組合構(gòu)建服務(wù)端session的垃圾回收機制
session.gc_probability與session.gc_divisor構(gòu)成執(zhí)行session清理的概率,理論上的解釋為服務(wù)端定期有一定的概率調(diào)用gc函數(shù)來對session進(jìn)行清理,清理的概率為:
gc_probability/gc_divisor 比如:1/100 表示每一個新會話初始化時,有1%的概率會啟動垃圾回收程序,清理的標(biāo)準(zhǔn)為session.gc_maxlifetime定義的時間。

ibeautiful
TA貢獻(xiàn)1993條經(jīng)驗 獲得超6個贊
在php.ini中可以看到以下配置行
; Define the probability that the 'garbage collection' process is started; on every session initialization.; The probability is calculated by using gc_probability/gc_divisor,; e.g. 1/100 means there is a 1% chance that the GC process starts; on each request.session.gc_probability = 1session.gc_divisor = 100; After this number of seconds, stored data will be seen as 'garbage' and; cleaned up by the garbage collection process.session.gc_maxlifetime = 1440
從注釋可以看出是session垃圾回收的配置。 session.gc_probability/session.gc_divisor 表述有1%的概率回收大于session.gc_maxlifetime時間的過期文件。
- 2 回答
- 0 關(guān)注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消