Thinkphp 3.2 nginx负载均衡下把session写入memcache和mysql中。

在项目服务器迁移过程中,遇到由于负载均衡导致的session丢失问题。通过分析代码,确认问题在于session作为查询条件时的不稳定性。解决方案是将session存储改为memcache和mysql。详细步骤包括安装memcache,配置Thinkphp3.2,以及创建mysql的session存储表。通过这些调整,成功解决了session丢失的问题。
摘要由CSDN通过智能技术生成

1.这几天做项目服务器迁移,在过程中发现数据总是出现这样那样的问题。项目是刚从其他公司接受的。在正式环境也出国莫名其妙的丢失session的情况,问这个项目的研发,他说他也在找bug。

2.看了代码逻辑,出问题的都是session作为查询条件的。于是就打印的session数组看。果然,同一个sessionid有时就是没有session的其他的值,多刷几下页面就有了。

3.确定问题是负载均衡导致session的问题好办了,本来想写进redis,但是Thinkphp3.2框架里没有session redis的支持。不太想去从网上去拿支持。于是就考虑memcache了。

4.网上搜来搜去很多文章都是截取的,遇到了一些坑。

5.步骤:

当然先安装memcache很简单,请自行百度

a.在php项目入口index.php中在require之前加入函数:

ini_set("session.save_handler", "memcached");
ini_set("session.save_path", "tcp://localhost:11211");

b.配置你的config,不要说不知道配置写哪里:

'MEMCACHE_HOST'=>'127.0.0.1',
    'MEMCACHE_PORT'=>'11211',
// session配置
    'SESSION_TYPE'=>'Memcache',

运行:telnet 127.0.0.1 11211

get (session_id) 自己在调试模式下看

memcache数据有值,ok搞定

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值