Thinkphp5.1框架中实现Session+Redis会话共享流程步骤

2023-06-01 00:00:00 框架 会话 步骤

在多web服务器环境中,会话共享是最基本也是最基础的分布式架构,

基本上所有成熟的web框架都有实现该功能,只需要简单的配置即可。

下面简单说一下再thinkphp结构中如何配置redis以实现session共享


测试Session+Redis会话共享环境:

下载两个tp5.1.10版本部署

域名1:tp1.zongscan.com
域名2:tp2.zongscan.com


进入步骤:

1.配置session内容,两套代码都要配置

return [
    'id'             => '',
    // SESSION_ID的提交变量,解决flash上传跨域
    'var_session_id' => '',
    // SESSION 前缀
    'prefix'         => 'module',
    // 驱动方式 支持redis memcache memcached
    'type'           => 'redis',
    // 是否自动开启 SESSION
    'auto_start'     => true,
    // redis主机
   'host'           => '127.0.0.1',
    // redis端口
   'port' => 6379,
    // 密码
   'password' => '',
   'domain' => '.local.com',//域名前面的那个小“.”别忘了 ,设置session域
]


2.两个域名间测试

a.在tp1项目index模块Index控制器内的test,利用session助手函数存储session变量

public function test()
{
      session('zongscan','你好,我是tp1的test');
      echo  session('zongscan');
}


b.然后在tp2项目的任意方法内获取session值

public function zongscan()
{
      echo session('zongscan');
}


最后

去访问代理机test分配到两个web机后会自动写入session

再次访问zongscan的时候,会显示"我是tp1的test"的字样

说明就会话共享成功实现了

相关文章