[php] 2024-09-17 圈点645
摘要:php环境下将session保存到redis的方法,可能需要将session集中并高效访问,可以将session保存到高效的session进行处理。
session保存到redis的用处
1,可以提高网站速度和效率
session保存到redis一般情况下服务器集群及高访问量的情况下,可能需要将session集中并高效访问
可以将session保存到高效的session进行处理。
2,其它用途,
比如更方便的统计在线人数,基于session可以T出某人登录状态,集中的管理session信息
php环境下将session保存到redis的方法
一:修改php.ini 或者php-fpm.ini 的设置
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
或者:
php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://www.xoxxoo.com?auth=pwd"
修改完之后,重启一下 php或者php-fpm。
如果redis中设置了密码,save_path 应该加上密码的写法 tcp://127.0.0.1:6379?auth=authpwd
方式二:通过 ini_set() 函数设置
ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");
如果redis中设置了密码,save_path 应该加上密码的写法 tcp://127.0.0.1:6379?auth=authpwd
三:thinkphp3.2中,可以直接修改配置文件
在全局配置中,修改如下配置文件:
'SESSION_TYPE' => 'Redis', //session类型
'SESSION_PERSISTENT' => false, //是否长连接(对于php来说0和1都一样)
'SESSION_CACHE_TIME' => 10, //连接超时时间(秒)
'SESSION_EXPIRE' => 1800, //session有效期(单位:秒) 0表示永久缓存
'SESSION_PREFIX' => '', //session前缀
'SESSION_REDIS_HOST' => 'r-uf6033f4669c74c4.redis.rds.aliyuncs.com', //分布式Redis,默认第一个为主服务器
'SESSION_REDIS_PORT' => '6379', //端口,如果相同只填一个,用英文逗号分隔
'SESSION_REDIS_AUTH' => 'BIDAHUOTOUredis12365ReTS64s', //Redis auth认证密码
测试session在redis中是否生效
session_start();
$_SESSION['sessionid'] = 'this is session content!';
echo $_SESSION['sessionid'];
echo '<br/>';
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
echo $redis->get('PHPREDIS_SESSION:' . session_id());
//存储到redis里面的session的keys的名称是类似 PHPREDIS_SESSION:xxxxxxxxx 即PHPREDIS_SESSION:session_id
//我们只需要连接到redis,并执行 keys PHPREDIS_SESSION* 即可列出全部的session
上一篇[php]thinkphp的U函数用法介绍
下一篇[php]PHP老版本的源码很难找了备用