今天早上测试代码发现一个奇怪的问题,每次执行一个功能,我的nginx都会自动崩溃,仔细追查发现是redis的哈希删除导致的,现在详细记录如下:
系统环境:Win7 64bit+Nginx1.0.1+PHP(FastCgi)5.2.8+Redis2.4.15+php_redis.dll(5.2.17.17)
测试代码:
$_redis = new Redis();
$isConnect = $_redis->connect('192.168.2.150', '6379', 5);
$key = 2602;//true
//$key = array(2602);//Nginx崩溃
try{
$_redis->hDel("op_position", $key);
}catch(RedisException $e){
print_r($e);
}
$_redis->close();
$_redis = null;
echo 'ok.';
执行表现:
当使用$key=2602;时,不管op_position是否存在,也不管op_position->2602是否存在,都能正常执行。
但当$key = array(2602);时,不管op_position怎么样,都会导致Nginx崩溃。
报错信息:CGI/FastCGI已停止工作
不知道这是Nginx的问题,还是Redis的PHP驱动问题,但总之很怪异啊,一行简单的php代码直接导致Nginx崩溃,还是第一次遇到,特此记录,以为留念。