php redis会话保存处理程序扩展函数gc(垃圾收集)

php redis会话保存处理程序扩展函数gc(垃圾收集),php,session,phpredis,Php,Session,Phpredis,有没有一种方法可以扩展session.save处理程序,以便在发生垃圾回收时调用函数 ini_set('session.save_handler','redis'); //code to set an additional gc function session_start(); 我希望为我的会话添加一个额外的清理步骤。我要清理的数据是数据库中的临时文件 如果无法扩展phpredis,是否有办法编写一个函数,用以下ini设置模拟会话垃圾收集 se

有没有一种方法可以扩展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();
}
$gc_probability=ini_get('session.gc_probability');
$gc_除数=ini_get('session.gc_除数');
$probability=$gc\u probability/$gc\u除数;
$random\u float\u介于0和1之间=mt\u rand()/mt\u getrandmax();
如果($random_float_介于_0_和_1 cleanup_expired_files()之间);
}

以下是我的想法

$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();
}
$gc_probability=ini_get('session.gc_probability');
$gc_除数=ini_get('session.gc_除数');
$probability=$gc\u probability/$gc\u除数;
$random\u float\u介于0和1之间=mt\u rand()/mt\u getrandmax();
如果($random_float_介于_0_和_1 cleanup_expired_files()之间);
}