Skip to content

Instantly share code, notes, and snippets.

@rschick
Created October 5, 2011 19:41
Show Gist options
  • Save rschick/1265456 to your computer and use it in GitHub Desktop.
Save rschick/1265456 to your computer and use it in GitHub Desktop.
Setting up redis-backed sessions in PHP
<?php
$redis_session_handle = null ;
function redis_session_get_connection () {
global $redis_session_handle ;
if (!$redis_session_handle) {
require_once (__DIR__ . '/../libs/Rediska.php') ;
$redis_session_handle = new Rediska (array (
'servers' => array (
array (
'host' => REDIS_HOST,
'port' => REDIS_PORT,
'db' => REDIS_DB,
),
)
)) ;
}
return $redis_session_handle ;
}
function redis_session_read ($id) {
$redis = redis_session_get_connection () ;
return $redis -> get ('sessions:php:' . $id) ;
}
function redis_session_write ($id, $data) {
$redis = redis_session_get_connection () ;
$redis -> setAndExpire ('sessions:php:' . $id, $data, ini_get ("session.gc_maxlifetime")) ;
return true ;
}
function redis_session_destroy ($id) {
$redis = redis_session_get_connection () ;
$redis -> delete ('sessions:php:' . $id) ;
return true ;
}
function redis_session_open ($save_path, $session_name) {
return true ;
}
function redis_session_close () {
return true ;
}
function redis_session_gc ($maxlifetime) {
return true ;
}
session_set_save_handler (
"redis_session_open",
"redis_session_close",
"redis_session_read",
"redis_session_write",
"redis_session_destroy",
"redis_session_gc"
);
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment