379);
//sleep(1);
}
sleep(10);
然后查看状态:netstat -nat | grep 127.0.0.1:6379你会发现很多TIME_WAIT。
如果$num加大到40000或者,报错:Cannot assign requested address。
因此如果客户端(php)连接redis出现这个问题,说明你程序出现bug了。你某个循环里面实例化Redis了(即每次都new Redis),造成每一次循环都建立一个连接。
解决这个问题不是修改内核参数,而是把连接redis封装成单实例,确保在同一进程内,连接redis是唯一实例。
class Class_Redis {
private $_redis;
private static $_instance = null;
private function __construct() {
$this->_redis = new Redis();
$this->_redis->connect('127.0.0.1',6379);
}
public static function getInstance() {
if(self::$_instance === null) {
self::$_instance = new self();
}
return self::$_instance;
}
public function getRedis() {
return $this->_redis;
}
}