不经过悉心栽培,花儿开不出鲜艳的花朵;不经过时间的历练,幼苗长不成参天大树。

thinkphp5、php使用redis实现session共享替代session(分布式)

php 建伟 1429℃ 0评论

原生写法

方法一:
找到配置文件php.ini,修改为下面内容,保存并重启服务

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

方法二:
直接在代码中加入以下内容:

ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");

注:如果配置文件redis.conf里设置了连接密码requirepass,save_path需要这样写tcp://127.0.0.1:6379?auth=authpwd ,否则保存session的时候会报错。

示例代码:

//ini_set("session.save_handler", "redis");
//ini_set("session.save_path", "tcp://127.0.0.1:6379");
session_start();
//存入session
$_SESSION['class'] = array('name' => 'toefl', 'num' => 8);
//连接redis
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
//检查session_id
echo 'session_id:' . session_id() . ';
//redis存入的session(redis用session_id作为key,以string的形式存储)
echo 'redis_session:' . $redis->get('PHPREDIS_SESSION:' . session_id()) . ';

//php获取session值
echo 'php_session:' . json_encode($_SESSION['class']);

thinkphp5框架

'session' => [
    'prefix'     => 'module',
    'type'       => 'redis',
    'auto_start' => true,
     // redis主机
    'host'       => '127.0.0.1',
     // redis端口
    'port'       => 6379,
     // 密码
    'password'   => '',
]

转载请注明:Li Jianwei's Blog » thinkphp5、php使用redis实现session共享替代session(分布式)

喜欢 (3)or分享 (0)
web技术交流群
22765697