Skip to content
Advertisement

php redis session save handler extending function gc (garbage collection)

Is there a way to extend phpredis session.save handler to call a function when garbage collection happens?

        ini_set('session.save_handler','redis');
        //code to set an additional gc function
        session_start();

I am looking to add an additional cleanup step for my session. The data I want to cleanup are temporary files in a database.

If it isn’t possible to extend phpredis would there be a way to write a function that uses to simulate session garbage collection with the below ini settings?

session.gc_probability = 1
session.gc_divisor = 100

Advertisement

Answer

Here is what I came up with

$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();
}
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement