phpredis 连接问题

redis 的 connect 和 pconnect

pconnect 是 redis 的长连接,其生命周期就是 php-fpm 的生命周期。只有当 php-fpm 进程销毁,redis 连接才会失效。调用 close 只是让当前 php 不再执行 redis 请求。

connect 是建立一次,获取完信息之后,调用 close 便将连接销毁。

redis 的连接池

因为 pconnect 的生命周期是直到 PHP-FPM 结束,所以当有很多长连接同一台 redis 服务器时,就会造成很多 FD 的错误,所以 phpredis 在 4.2.1 版本实现了连接池。

就是在 php.ini 文件中把 redis.pconnect.pooling_enabled 设置为 1。之后向之前的版本一样使用 pconnect 就可以。

参考:

  1. https://github.com/phpredis/phpredis/tree/4.3.0#connection
  2. https://blog.csdn.net/qmhball/article/details/46988111