現(xiàn)在用循環(huán)效果不是很好,數(shù)據(jù)量三萬多條時,就要兩秒多的插入時間,有沒有一種批量插入大量數(shù)據(jù)的方法
之前我是用這樣的方法
for ($i=0; $i < count($list); $i++)
{
$redis->lpush('list',$list[$i]['phone']);
$redis->lpush('code',$list[$i]['smscode']);
}
效果并不是很好
@elarity 之前確實沒有注意到過PHP的這個關(guān)鍵字,thinks
我就強行答一個其他的方法吧
可以利用Redis的 Pipeline
, 也就是管道
目的是為了對多個命令進行打包,多次網(wǎng)絡(luò)請求合并成單次。
$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的性能優(yōu)于for
你看下我圖中的代碼 , 第一張圖是代碼 , 第二張是運行結(jié)果 .
可以參考下 .
然后是我得做幾條補充說明 :
我是在php cli下測試的 , 該腳本從頭到尾只連接了redis一次 , 一直到最終腳本執(zhí)行完畢釋放連接 .
... 是php 5.6新加入的特性 , 你可以搜php 5.6不定參數(shù)關(guān)鍵字 .
我只針對單個key進行操作 , 而樓主似乎是需要對不同的key進行操作 .
我操作的key是個set集合 , 而不是樓主的list .
我再補充下 , 原來之前 , 我還用過如下方法 :
關(guān)鍵字 call_user_func_array()
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。