php+redis实现session共享

本文介绍了两种在PHP中利用Redis实现Session共享的方法。方案1通过ini_set设置session存储方式和路径;方案2则利用session_set_save_handler自定义session处理器。在PHP 5.4.45版本中,使用SessionHandlerInterface会导致502错误,需采用不同参数调用session_set_save_handler。
摘要由CSDN通过智能技术生成

一、方案1

方案1特别简单,直接用ini_set设置session的存储方式和存储路径即可,如下:

ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://127.0.0.1:6379?auth=123456');
这样,我们的session信息就可以保存到redis中了。如下图:



二、方案2

方案2是使用session_set_save_handler来实现session的存储。

1、配置redis参数

//redis配置
$GLOBALS['config']['redis'] = [
    'host'         => '127.0.0.1', // redis主机
    'port'         => 6379, // redis端口
    'password'     => '', // 密码
    'select'       => 0, // 操作库
    'expire'       => 3600, //有效期
    'timeout'      => 0, // 连接超时时间(单位:毫秒)
    'prefix' => 'PHPREDIS_SESSION:', // key前缀
];

2、存储类

<?php
class SessionRedis extends SessionHandler
{
    protected $handler = null;
    protected $config  = [
        'host'         => '127.0.0.1', // redis主机
        'port'         => 6379, // redis端口
        'password'     => '', // 密码
        'select'       => 0, // 操作库
        'expire'       => 3600, // session有效期
        'timeout'      => 0, // 连接超时时间(单位:毫秒)
        'prefix' => '', // key前缀
    ];

    public function __construct($config = [])
    {
        $this->config = array_merge($this->config, $config);
        //var_dump($this->config);
    }

    /**
     * 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值