有三台web服务器做负载均衡,其中一台服务器连接redis异常,报错信息如下:

Predis Fatal Error : No sentinel server available for autodiscovery.

再往前看发现有php有warning信息:

PHP Warning[2]: stream_socket_client() has been disabled for security reasons

因为程序是用的是PHP的predis库,连接是TCP连接,要用PHP内置的stream_socket_client函数,如果php.ini配置文件中在disable_functions里面禁用了stream_socket_client数据的话就会导致程序连不上redis.修改配置文件后报错消失。