现在用循环效果不是很好,数据量三万多条时,就要两秒多的插入时间,有没有一种批量插入大量数据的方法
之前我是用这样的方法
for ($i=0; $i < count($list); $i++)
{
$redis->lpush('list',$list[$i]['phone']);
$redis->lpush('code',$list[$i]['smscode']);
}
效果并不是很好
@elarity 之前确实没有注意到过PHP的这个关键字,thinks
我就强行答一个其他的方法吧
可以利用Redis的 Pipeline
, 也就是管道
目的是为了对多个命令进行打包,多次网络请求合并成单次。
$redis = new Redis();
$redis->connect('127.0.0.1', '6379');
$redis->multi(Redis::PIPELINE);
for ($i=0; $i < count($list); $i++) {
$redis->lpush('list',$list[$i]['phone']);
$redis->lpush('code',$list[$i]['smscode']);
}
$redis->exec();
ps:foreach的性能优于for