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、端口号来进行判断实例是否存在。其他的缓存应该也有这个问题。
