我目前正在开发Codeigniter最新版本,我尝试创建用户系统管理,我将会话设置为以下代码但Codeigniter不会删除旧会话行的现有行,而是尝试插入新的会话行。 它可能会使我的表用户卡住或因为它将存储更多(超过5000行)的用户会话行,或者如果所有会话行永远保留并且不删除或更新现有的会话数据行,则我的数据库连接可能会出错。
Laravel将如何永久保留其数据库中的会话行,或者在用户关闭浏览器或唱出后自动删除其用户行。
此外,我没有看到我的IP显示在我的数据库中。
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
请帮助解决我的问题,如果可能的话,请给我一些想法
答案 0 :(得分:4)
使用Laravel,您可以store session data一个文件,一个数据库,一个cookie或一个像memcached或redis这样的缓存。 Laravel根据v4.2中lottery
和v5.0中app/config/session.php
中的config/session.php
设置清除过期的会话条目:
/*
|--------------------------------------------------------------------------
| Session Sweeping Lottery
|--------------------------------------------------------------------------
|
| Some session drivers must manually sweep their storage location to get
| rid of old sessions from storage. Here are the chances that it will
| happen on a given request. By default, the odds are 2 out of 100.
|
*/
'lottery' => [2, 100],
调整lottery
值会更改任何给定请求上垃圾收集的几率。要强制清除,将赔率设置为1:1(即如果lottery
中的两个值匹配)将强制Laravel在下一个请求中删除所有过期的会话数据。