关于redis缓存redis server went away问题解决办法

浏览:22986 发布日期:2015/07/30
3.2.3 - 致命 - 未处理
跟踪发现是ThinkPHP\Library\Think\Cache.class.php中getInstance方法中,获取实例导致链接过多。to_guid_string方法获取唯一值方法没错,错误在使用$options直接获取,而$options中带有缓存key,所以,每次cache调用的时候,就重新连接redis一次。改为$options_array = array();
        if(isset($options['type'])){
            $options_array['type'] = $options['type'];
        }
        if(isset($options['host'])){
            $options_array['host'] = $options['host'];
        }
        if(isset($options['port'])){
            $options_array['port'] = $options['port'];
        }
        $guid    =    $type.to_guid_string($options_array);
后就解决了,应该是根据缓存类型、ip、端口号来进行判断实例是否存在。
其他的缓存应该也有这个问题。
评论(
后面还有条评论,点击查看>>