问题描述
有没有一种方法可以扩展phpredis session.save处理程序以在发生垃圾回收时调用一个函数?
ini_set('session.save_handler','redis');
//code to set an additional gc function
session_start();
我希望为我的会话添加其他清理步骤。我要清除的数据是数据库中的临时文件。
如果无法扩展PHPredis,是否可以使用以下ini设置编写一种函数来模拟会话垃圾回收?
session.gc_probability = 1
session.gc_divisor = 100
解决方法
这是我想出的
$gc_probability = ini_get('session.gc_probability');
$gc_divisor = ini_get('session.gc_divisor');
$probability = $gc_probability/$gc_divisor;
$random_float_between_0_and_1 = mt_rand() / mt_getrandmax();
if ($random_float_between_0_and_1 <= $probability)
{
$this->cleanup_expired_files();
}