php用redis保存session

时间:2023-03-09 04:49:56
php用redis保存session

1.修改php.ini中session配置:

ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://192.168.1.10:6379');
//redis有密码的话
//ini_set('session.save_path', 'tcp://192.168.1.10:6379?auth=password'); 注意:php-fpm.conf中的配置会覆盖php.ini中的配置,所以要确保php-fpm中的对应配置关闭,或者修改:
php用redis保存session
2.代码中使用session:
<?php
/*
*可以配置如下选项
*session.auto_start = 1 --自动开始,不需要session_start()
*session.cookie_lifetime = 31536000 --cookies中的session_id一年才过期,默认是0,关闭浏览器就过期。
*session.gc_maxlifetime = 1447 --session回收时间,默认1447,存贮在redis中的session的expire被设置为此项。
*/
session_start(); // 可以配置session.auto_start = 1 ,自动开启。 $_SESSION['foo'] = 'bar';
echo $_SESSION['foo']; //bar, 当前的session已经存在redis中 //redis中以string类型存储session
$redis = new Redis();
$redis->connect('localhsot', 6379);
echo $redis->get( 'PHPREDIS_SESSION:'.session_id() );
//格式:string(29) "uid|i:554:"";username|s:5:"hello";"