資源描述:
《Redis與網(wǎng)站架構(gòu)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、Redis與網(wǎng)站架構(gòu)@joyqiSegmentFault.com12年7月30日星期一什么是Redis?12年7月30日星期一什么是Redis??REmoteDIctionaryServer縮寫?一個(gè)基于內(nèi)存的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)?豐富的數(shù)據(jù)結(jié)構(gòu)(sets,sortedsets,hashes,list...)?本質(zhì)是key-value,但是與memcached不同的是,value的類型得到了擴(kuò)展12年7月30日星期一有何不同?看看具體的網(wǎng)站12年7月30日星期一一個(gè)普通的問題列表需求?問題本身的數(shù)據(jù)(標(biāo)題,投票等等)?問題的作者數(shù)據(jù)(另一張單獨(dú)的一張數(shù)據(jù)表,通過某個(gè)鍵值
2、關(guān)聯(lián))?問題的標(biāo)簽(本身單獨(dú)一張數(shù)據(jù)表,通過一個(gè)中間關(guān)系表與問題產(chǎn)生一對(duì)多的關(guān)系)12年7月30日星期一如何取出數(shù)據(jù)?SELECT...SQL無法回避的問題12年7月30日星期一用一條SQL解決問題是不可能的12年7月30日星期一多次查詢會(huì)讓大家崩潰12年7月30日星期一冗余字段會(huì)讓你看起來很傻12年7月30日星期一我看還是用Memcached好了等等,為啥不試試Redis12年7月30日星期一用Hashes保存字段$user=array('id'=>123,'name'=>'joyqi','mail'=>'magike.net@gmail.com','crea
3、ted'=>1212312312);$redis->hMSet(‘user:123’,$user);print_r($redis->hGetAll(‘user:123’));12年7月30日星期一用Sets保存關(guān)系$questionId=123;$tagIds=array(111,222,333);foreach($tagIdsas$sort=>$tagId){$redis->zAdd(‘question_tag:’.$questionId,$sort,$tagId);}print_r($redis->zRange(‘question_tag:123’,0,-1
4、));12年7月30日星期一與SQL相比?大大減少了查詢數(shù)量,提高了效率?redis的API更加人性化,再也不需要構(gòu)建SQL語句,節(jié)省了SQL的解析時(shí)間12年7月30日星期一與Memcached相比?支持哈希存儲(chǔ),存儲(chǔ)多個(gè)字段時(shí)不需要自己再次用類似json的格式編碼和解碼,更新也更加高效?支持列表和集合等多種數(shù)據(jù)集,可以方便快捷地處理有序數(shù)據(jù)12年7月30日星期一Redis用于搜索?12年7月30日星期一有了Redis,支持實(shí)時(shí)搜索的門檻被大大降低12年7月30日星期一分詞加Redis集合實(shí)現(xiàn)索引$questionTitle=‘搜索技術(shù)’;$questionId
5、=123;$words=fenci($questionTitle);//array(‘搜索’,‘技術(shù)’);foreach($wordsas$word){$redis->zAdd(‘w:’.md5($word),1,$questionId);}//索引完成12年7月30日星期一Redis集合Union操作實(shí)現(xiàn)查詢$keywords=‘怎樣實(shí)現(xiàn)搜索技術(shù)’;$words=fenci($keywords);//array(‘怎樣’,‘實(shí)現(xiàn)’,‘搜索’,‘技術(shù)’);$indexes=array_map(function($word){return‘w:’.md5($wor
6、d);},$words);$redis->zUnion(‘result’,$indexes,array_?ll(0,count($indexes),1),‘sum’);print_r($redis->zRevRange(‘result’,0,-1));12年7月30日星期一深遠(yuǎn)影響Redis的特性是如此豐富而又恰到好處,他會(huì)給網(wǎng)站架構(gòu)帶來深遠(yuǎn)影響,一些以前無法實(shí)現(xiàn)的方法將涌現(xiàn)出來。http://redis.io12年7月30日星期一:)Thanks,Q&A@joyqi
7、joyqi.com12年7月30日星期一