php之session保存到redis

[php] 2024-03-29 圈点897

摘要: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

  

相关内容:

感谢反馈,已提交成功,审核后即会显示