Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter 3 Redis会话驱动程序车库收集,sess_过期=0_Codeigniter_Redis - Fatal编程技术网

Codeigniter 3 Redis会话驱动程序车库收集,sess_过期=0

Codeigniter 3 Redis会话驱动程序车库收集,sess_过期=0,codeigniter,redis,Codeigniter,Redis,我正在阅读Redis会话驱动程序的源代码。在gc函数中,它返回true,并表示Redis处理此问题 redis如何决定何时退出sess_过期为0的数据?当这些会话可以被删除时,我不希望redis被填满。基本上说,你没有 我们也遇到了同样的问题-一种可能的方法是定义最长的到期时间(例如3、6、12个月) 此外,您还可以跟踪上次访问会话的时间,并在定义的时间段后删除所有非活动会话 为此,您必须编写自己的GC。(我们安装了一个每24小时运行一次的cron作业)。我对这个主题不太熟悉,但我认为: 默认情

我正在阅读Redis会话驱动程序的源代码。在gc函数中,它返回true,并表示Redis处理此问题


redis如何决定何时退出sess_过期为0的数据?当这些会话可以被删除时,我不希望redis被填满。

基本上说,你没有

我们也遇到了同样的问题-一种可能的方法是定义最长的到期时间(例如3、6、12个月)

此外,您还可以跟踪上次访问会话的时间,并在定义的时间段后删除所有非活动会话


为此,您必须编写自己的GC。(我们安装了一个每24小时运行一次的cron作业)。

我对这个主题不太熟悉,但我认为: 默认情况下,redis遵循特定的策略来管理您的会话。因此:GC保存会话信息之后的默认过期时间,以便在下一个条目中使用。在这样做时,它会查看其配置(您是否创建了一个表来存储会话?您应该在什么时候保存它?)

这使得定制此部件成为可能。因此,您可以通过编写自己的处理程序来管理会话。如果需要,您可以将会话信息存储在任何位置,而无需将其转移到数据库端(如cookie)。另外,您还可以设置自己的web服务并从中管理“记住我”信息,这是另一个选项


我的理解是,如果将sess_expiration设置为0,它将自行管理。否则,你可以设置一个短时间,比如40分钟,你可以使用sintakonte的玉米作业。(我认为没有办法编写您自己的GC,您可以像那样定制您的会话处理程序)

我在最初的测试中注意到,它们自己正在消失。redis中的某些东西可能已经改变了吗?当使用sess_expiration=0创建时,它们似乎得到了4小时的TTL。这与我的session.gc_maxlifetime的php.ini设置相匹配很难说-通常情况下,它就像一个符咒-我想你必须调试它,以获得正确的信息。