PHP使用redis connect与pconnect的区别

二尸兄 2016-09-12 10:37:32
网上很多文章已经描述但是仍有疑惑;
1. 当使用pconnect时,连接会被重用,连接的生命周期是“fpm进程的生命周期”,而非一次php的执行。
疑惑1: fpm进程的生命周期是指 当前那1个fastcgi还是指整个php-fpm进程; ( php-fpm通常是1个master管理 n个fastcgi进程)

2.如果代码中使用pconnect, close的作用仅是使当前php不能再进行redis请求,但无法真正关闭redis长连接,连接在后续请求中仍然会被重用,直至fpm进程生命周期结束。
疑惑:这里的"当前php " 同上疑惑是: 当前那1个fastcgi还是指整个php-fpm进程;
...全文
408 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2016-09-16
  • 打赏
  • 举报
回复
在高并发情况下如果所有的FastCGI都在重启; 有什么解决方案吗; 可以try catch捕捉异常,重连后再获取数据。
monxinmonxin0 2016-09-12
  • 打赏
  • 举报
回复
抢沙发
xuzuning 2016-09-12
  • 打赏
  • 举报
回复
PHP-FPM 是一个 PHP FastCGI 管理器 FastCGI 运行结束后,并不立即退出内存,而是等待下一次运行机会 当有一个 http 会话请求到来时,由 PHP-FPM 决定是启用新的 FastCGI 进程,还是使用当前闲置的 FastCGI 进程 由于 FastCGI 进程都是独立的,所以他们之间不会共享信息。 所以 fpm进程的生命周期 这个说法是不正确的,应是 FastCGI 进程的生命周期 fpm进程 是在服务开启那一刻就存在的,知道服务关闭或出现错误
二尸兄 2016-09-12
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
PHP-FPM 是一个 PHP FastCGI 管理器 FastCGI 运行结束后,并不立即退出内存,而是等待下一次运行机会 当有一个 http 会话请求到来时,由 PHP-FPM 决定是启用新的 FastCGI 进程,还是使用当前闲置的 FastCGI 进程 由于 FastCGI 进程都是独立的,所以他们之间不会共享信息。 所以 fpm进程的生命周期 这个说法是不正确的,应是 FastCGI 进程的生命周期 fpm进程 是在服务开启那一刻就存在的,知道服务关闭或出现错误
先感谢博主xuzuning解答; 所以 fpm进程的生命周期 这个说法是不正确的,应是 FastCGI 进程的生命周期 这么说来的话php对redis使用的pconnect连接都是针对当前那一个FastCGI,断开连接有两种可能; 一是:每个FastCGI处理一定量的请求后自动重启会断开; 二是:pconnect连接时配置参数设置的time_out 超时会断开; 追问一下博主: 在高并发情况下如果所有的FastCGI都在重启; 有什么解决方案吗;

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧