解決php zf2中redis調用提示'RedisException' with message 'read error on connection'

php zf2實現的代碼中調用了redis,有時會報錯'RedisException' with message 'read error on connection',絕大多數時候不出現這個錯誤。

我的代碼如下:

  //獲取redis
        $serviceManager = new ServiceManager();
        $serviceManager->setFactory('redis', new RedisFactory());
        $redis = $serviceManager->get('redis');
        $data = json_decode($redis->getItem("wap_sso_website"));

經過查找各方資料,發現是php.ini文件中的一個配置項導致:

  1. default_socket_timeout = 60 

由於redis擴展也是基於php 的socket方式實現,因此該參數值同樣會起作用。

 

       找到了問題就比較好解決了:

    1、直接修改php.ini,將其設置爲我們想要的值(這個不推薦)

    2、在我們的腳本中通過以下方式設置,這樣就比較靈活,不對其他腳本產生影響

  1. ini_set('default_socket_timeout', -1);  //不超時 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章