php操作redis报错Redis::__set_state(array( 'socket' => NULL, ))
原因:
redis使用Redis::PIPELINE方式可以提升命令的执行速度,但因为前一步流程没有调用exec(),后续代码就继续用redis对象操作。如下代码,如果$cd1为false,则$res2返回标题报错
$pipe = $redis->multi(Redis::PIPELINE); foreach ($for as $bar) { $redis->get($bar); } if($cd1){ $res1= $pipe->exec(); } $res2 = $redis->get('test');
解决:
检查代码逻辑,确保所有$redis->multi(Redis::PIPELINE);方法都有与之对应的$pipe->exec();方法执行。
文字均为博主原创,转载请联系博主,谢谢!