应用程序/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 分钟更新一次:ci_sessions 表$config['sess_time_to_update'] = 300;
中有大量未使用的行。一天内只有 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 表中只有 1 个条目永远不会被删除,因为 gc 概率为 0。我将有自己的清理代码来删除未使用的会话每个月左右。但问题是:
不仅仅是会话更新会在 ci_sessions 表中创建一个新条目,而且每次刷新都会创建一个新条目。这将产生同样的问题,即拥有大量未使用的会话。
如何避免每次刷新或页面调用都有新的会话 ID?