的application/config/config.php文件常設會議
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
因爲我有一個永久的會議:$config['sess_expiration'] = 0;
和會話更新每隔5分鐘:$config['sess_time_to_update'] = 300;
有未使用的行數量龐大在ci_sessions表。 在爲僅3到4用戶ci_sessions表中的數據,每天去1 MB
所以,我想要做的是這樣的:
$config['sess_expiration'] = 0;
$config['sess_time_to_update'] = 60*60*24*365*2;
and
var $gc_probability = 0;
2年到期時間和更新時間,所以一個單一的瀏覽器將會出現,這將永遠不會被刪除的ci_sessions表中只有一項,因爲GC的概率是0,我會有我自己清理代碼每隔一個月左右,除去未使用的會話。但問題是:
它不只是會話更改,這使得新進入 ci_sessions表,但每刷新使一個新的條目。其中 會產生大量未使用會話的相同問題。
如何避免每次刷新或頁面調用時出現新的會話ID?
'sess_use_database = FALSE'是一個錯字。但是,如果會話過期設置爲0,則需要2年(在源代碼中)。我沒有看到需要保持會話很長時間,因爲當用戶關閉瀏覽器時他們將被刪除(我看到如果我設置了'$ config ['sess_expire_on_close'] = FALSE;',這種情況不會發生。但是,當Cookie被清除時發生,這是預期的行爲 –
@ Archie.bpgc嘗試讓會話終止時間高於會話更新時間,這可能會導致問題。你有沒有嘗試增加到期時間來說60秒,刷新頁面幾次? – SamV
'如果($這 - > sess_expiration == 0) \t \t { \t \t \t $這 - > sess_expiration =(60 * 60 * 24 * 365 * 2); \t \t}'這是我在會話類中。所以,0實際上是2年。 –