PHP應(yīng)該使用緩存和連接池

本文轉(zhuǎn)載自 原文寨腔,原文鏈接已失效凛辣,摘抄自 摘抄毅哗,摘抄發(fā)布于 2013-02-24 17:32听怕。

開篇注釋:以下文字并沒有非常多的技術(shù)詞匯,所以只要對(duì)PHP感興趣的人都可以看看虑绵。

從PHP誕生之日起尿瞭,PHP就開始在Web應(yīng)用方面為廣大的程序員服務(wù)。同時(shí)翅睛,作為針對(duì)Web開發(fā)量身定制的腳本語言声搁,PHP一直秉承簡(jiǎn)單、開源的思想捕发,這也使得PHP得以快速的發(fā)展疏旨,并且大力地推動(dòng)Web2.0的出現(xiàn)與發(fā)展。但是扎酷,長(zhǎng)期以來檐涝,PHPer(PHP Programmers)被認(rèn)為是處于草根階層的程序員,被認(rèn)為是技術(shù)含量少法挨,層次低的程序員骤铃。這點(diǎn)在國(guó)內(nèi)尤其突出。
記得一個(gè)技術(shù)主管說過這樣一個(gè)事情坷剧。他給一個(gè)程序員分配了PHP的開發(fā)任務(wù)惰爬,沒想到那個(gè)程序員居然說:“我是學(xué)Java出身的,你讓我去寫PHP惫企,你這不是在貶低我嗎撕瞧?”陵叽。這件事情給我印象很深、觸動(dòng)也很大丛版。雖然這不能代表大部分程序員的看法巩掺,但是這么認(rèn)為的人應(yīng)該不少。還有人說页畦,現(xiàn)在如果是大型的政府項(xiàng)目胖替,PHP是肯定不會(huì)被列入考慮的范圍之內(nèi)的。
那么為什么PHPer會(huì)被認(rèn)為是草根階層豫缨,是因?yàn)樗芎?jiǎn)單独令,人人都可以學(xué)會(huì),所以沒什么難度嗎好芭?我以前也是這么認(rèn)為燃箭。PHP入門很快,處理文件舍败,數(shù)據(jù)招狸,遠(yuǎn)程連接,網(wǎng)絡(luò)編程都非常方便邻薯,官方也有這樣的說法:PHP學(xué)習(xí)的成本很低裙戏,所以你容易去使用它。這個(gè)想法也是普遍的厕诡,甚至大部分的PHPer自己都這樣認(rèn)為累榜。
說到這里,我想大家就會(huì)想到我為什么要寫這些文字木人。因?yàn)橐荒甓嗟腜HP推廣工作讓我了解到許許多多的使用PHP的公司的大概情況。在這些過程中我慢慢體會(huì)到其中的根本原因冀偶。這里我說是根本原因雖然是個(gè)人的看法醒第,但是我覺得事實(shí)就是如此。
那么為什么PHPer會(huì)被看成草根階層进鸠,根本原因是PHPer所作的事情(通過代碼實(shí)現(xiàn))的絕大部分都是表現(xiàn)層的東西稠曼,這個(gè)熟悉PHP的人都知道。當(dāng)然也會(huì)有PHP會(huì)說他用MVC結(jié)構(gòu)編寫的某某框架具備的如何如何的功能客年。但是這些還是表現(xiàn)層霞幅。所以只會(huì)處理表現(xiàn)層的程序員就被看成草根階層了。事實(shí)上也是如此量瓜,因?yàn)檫@種情況下PHP確實(shí)很難構(gòu)造大型的應(yīng)用司恳。
這就找到原因了,不是的绍傲。為什么PHPer總是在負(fù)責(zé)表現(xiàn)層的東西呢扔傅。答案是底層的數(shù)據(jù)處理(Web應(yīng)用就是數(shù)據(jù)存儲(chǔ)和查找)我們一般不去觸及耍共!好,那么說到這里有些人可能已經(jīng)想到了猎塞,那不就是數(shù)據(jù)庫嗎试读!對(duì),就是數(shù)據(jù)庫荠耽!讓PHPer一直當(dāng)草根的元兇就是數(shù)據(jù)庫钩骇。為什么?
因?yàn)槟壳傲餍械膚eb架構(gòu)中铝量,前端是負(fù)載均衡系統(tǒng)倘屹,中間是web服務(wù)器,后面是數(shù)據(jù)庫服務(wù)器款违。所以唐瀑,大部分PHPer工作在Web服務(wù)器層面。因?yàn)閿?shù)據(jù)庫已經(jīng)很好地為我們組織數(shù)據(jù)了插爹。所以PHP中沒有太多的算法哄辣,而且大家潛意識(shí)下也覺得不需要,更何況會(huì)影響性能赠尾。
這種情況下力穗,PHPer就成為了數(shù)據(jù)庫使用者,他總是在操作數(shù)據(jù)庫气嫁。而不是在做程序当窗。一個(gè)最簡(jiǎn)單的PHP腳本就是,連接數(shù)據(jù)庫寸宵,把數(shù)據(jù)取出來崖面,然后用命令輸出到瀏覽器。整個(gè)過程不超過10行代碼梯影。給人的感覺就是太簡(jiǎn)單了巫员。沒有任何技術(shù)含量。為什么了甲棍,因?yàn)閿?shù)據(jù)處理部分都已經(jīng)被數(shù)據(jù)庫做完了简识。尤其是MySQL的使用!MySQL是免費(fèi)的感猛,所以大多數(shù)程序員可以自由地使用它七扰,另外MySQL的速度夠快了,所以做個(gè)PHP應(yīng)用程序非常的簡(jiǎn)單陪白。這就相當(dāng)于給你槍以后你覺得沒有必要學(xué)習(xí)武功一樣颈走。當(dāng)然,我不是說槍沒有武功好咱士。而是說疫鹊,槍的出現(xiàn)袖瞻,小孩都可以輕松便捷地殺人了。
我們?cè)僭敿?xì)說說為什么是數(shù)據(jù)庫拆吆!這里我說一個(gè)例子聋迎。我去過北京一家非常著名的網(wǎng)站,當(dāng)時(shí)我們還有一個(gè)比較資深的PHP程序員在那說些系統(tǒng)架構(gòu)的事情枣耀。我記得當(dāng)時(shí)那個(gè)程序員問大家一個(gè)數(shù)據(jù)結(jié)構(gòu)中的算法問題的時(shí)候霉晕,全場(chǎng)沒有一個(gè)人能答得出來(包括我)。然后那個(gè)程序員就開始給大家講些很基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)的東西了捞奕。讓我一下子回想到大學(xué)時(shí)候?qū)W的數(shù)據(jù)結(jié)構(gòu)課牺堰。而這些基礎(chǔ)的數(shù)據(jù)排序、查找颅围、傳遞的問題在其他高級(jí)語言(比如C)是非常普遍的伟葫。但是在PHP沒有!PHPchina.com的論壇也有個(gè)板塊叫PHP的數(shù)據(jù)結(jié)構(gòu)和算法院促。這個(gè)板塊的帖子也是寥寥無幾筏养。
仔細(xì)回想下,目前網(wǎng)絡(luò)上大家討論的最多的是兩個(gè)方面的問題常拓。一個(gè)是PHP的類的使用(處理過程的封裝)渐溶,還有一個(gè)是開發(fā)框架問題。但是我們仔細(xì)分析的話弄抬,發(fā)現(xiàn)這些所謂的PHP中比較復(fù)雜的概念里面沒有數(shù)據(jù)處理茎辐!為什么,有數(shù)據(jù)庫掂恕!用一個(gè)Adodb或者PHP5的PDO就可以搞定了拖陆!真的搞定了嗎?不是懊亡,這些無非是在連接數(shù)據(jù)庫依啰,沒有數(shù)據(jù)處理!所以PHPer似乎就沒有什么可以拿出臺(tái)面上的東西斋配。
再說一個(gè)具體的代碼問題孔飒,無級(jí)分類灌闺。這個(gè)概念我想大家都不會(huì)陌生了吧艰争。我見過兩種處理方式。第一個(gè)是地道的PHPer的處理方式桂对,也是目前比較流行的甩卓。就是用數(shù)據(jù)庫來處理。而且字段很少蕉斜,只需要加個(gè)父類的字段并加以判斷就行了逾柿。而且這個(gè)方法很實(shí)用缀棍。效率也高!但是這個(gè)不是數(shù)據(jù)處理的范疇了机错,而是數(shù)據(jù)庫的查找爬范!
第二個(gè)是C程序員用PHP寫出來的,他把所有的分類信息都從數(shù)據(jù)庫取出來弱匪,然后用數(shù)據(jù)結(jié)構(gòu)算法進(jìn)行排列分布青瀑,然后輸出。
這里我們不對(duì)這兩種方式的效率進(jìn)行對(duì)比萧诫,我想大家都有各自的想法斥难。但是我想說明一個(gè)問題,就是這兩種做法的本質(zhì)的區(qū)別帘饶。PHPer習(xí)慣性地用數(shù)據(jù)庫來處理哑诊,而且有很巧的處理方式,效率也很高及刻!這種方式就是數(shù)據(jù)庫查詢镀裤。而第二種方法是比較有特點(diǎn)的。他認(rèn)為數(shù)據(jù)庫就是存放數(shù)據(jù)的地方提茁,具體的邏輯處理還要靠自己的邏輯淹禾。因此,結(jié)論是第二種方法的使用者覺得自己強(qiáng)些茴扁,因?yàn)閿?shù)據(jù)的邏輯是他組織的铃岔!并且覺得PHPer的那種做法無非就是會(huì)查詢數(shù)據(jù)庫罷了。所以他認(rèn)為PHPer是草根級(jí)的峭火,只懂得操作數(shù)據(jù)庫和排列頁面(smarty搞搞那種)毁习。
說到這里,我想大家都已經(jīng)回憶了不少自己平時(shí)用PHP做開發(fā)的經(jīng)歷了吧卖丸,是否發(fā)現(xiàn)大家確實(shí)都在操作數(shù)據(jù)庫呢纺且。
那么我們來討論下這個(gè)問題。數(shù)據(jù)庫不好嗎稍浆?為什么我一直用數(shù)據(jù)庫處理數(shù)據(jù)都沒有問題载碌。我要說的是數(shù)據(jù)庫是有問題的,而且有很大的問題衅枫!當(dāng)然這里我并不是說不能用數(shù)據(jù)庫嫁艇,也不是在貶低數(shù)據(jù)庫的性能。而是弦撩,我們沒有充分認(rèn)識(shí)到數(shù)據(jù)庫所起到的作用步咪。
我的想法源起于這樣一個(gè)事情,有一次一個(gè)網(wǎng)站的技術(shù)總監(jiān)問我益楼,為什么他們的網(wǎng)站那么慢猾漫,要怎么辦点晴。當(dāng)時(shí),我的MSN里Zend總部的工程師正好在線悯周,我就問他PHP響應(yīng)比較慢了粒督,怎么辦?他當(dāng)時(shí)直接告訴我禽翼,數(shù)據(jù)庫問題坠陈!肯定是數(shù)據(jù)庫沒有優(yōu)化設(shè)計(jì)好。所以捐康,我沒有給那個(gè)技術(shù)總監(jiān)確切的答案了仇矾,因?yàn)樗麄兊臄?shù)據(jù)庫設(shè)計(jì)我們是不能涉及的。所以就給了大概的數(shù)據(jù)庫優(yōu)化的建議解总。這樣的事情屢次發(fā)生贮匕,我就開始懷疑,為什么Zend總部的工程師每次都跟我說是數(shù)據(jù)庫的問題呢花枫,難道我們不能從PHP層面來解決這個(gè)問題嗎刻盐?答案是不能!因?yàn)镻HP目前的運(yùn)行速度已經(jīng)是很快了劳翰,通過Zend的性能分析也能看到一個(gè)用戶的點(diǎn)擊敦锌,PHP的運(yùn)行時(shí)間只有10%不到,那PHP在干嗎佳簸?它在等乙墙。等數(shù)據(jù)庫的查詢結(jié)果。這個(gè)方面在目前的PHP產(chǎn)品中有了很大的提高生均,那就是Caching和網(wǎng)頁靜態(tài)化兩個(gè)方案听想。Caching可能大家會(huì)比較陌生,但是網(wǎng)也靜態(tài)化現(xiàn)在連PHP產(chǎn)品的用戶都非常清楚了马胧。速度快汉买、容易被搜索到等等,好處不言而喻佩脊。開玩笑地說蛙粘,現(xiàn)在網(wǎng)站的主頁實(shí)現(xiàn)網(wǎng)頁靜態(tài)化只需要硬盤足夠大。J至于Caching就比較復(fù)雜些威彰,也是大多數(shù)PHPer感到頭疼的地方出牧。甚至于有些人會(huì)用C來實(shí)現(xiàn)。因?yàn)镃aching中的數(shù)據(jù)有效期驗(yàn)證抱冷、查找崔列、提取梢褐、更新等等都是比較難處理旺遮。當(dāng)然赵讯,也有人會(huì)用數(shù)據(jù)庫來處理Caching問題。
所以耿眉,當(dāng)訪問量激增的時(shí)候边翼,PHP架構(gòu)的網(wǎng)站會(huì)出現(xiàn)的很多問題都因數(shù)據(jù)庫而起。數(shù)據(jù)庫的同步問題還不算什么鸣剪。關(guān)鍵是數(shù)據(jù)庫的響應(yīng)速度會(huì)有指數(shù)級(jí)的降低组底。這個(gè)問題我在10月23號(hào)LAMP發(fā)布會(huì)的時(shí)候問過MySQL的副總裁。他當(dāng)時(shí)也沒有給我比較完美的答案(這也我的意料之中)筐骇,因?yàn)閿?shù)據(jù)庫總會(huì)有瓶頸的债鸡,除非是神仙數(shù)據(jù)庫,哈哈铛纬!這里有個(gè)題外話厌均,LAMP大會(huì)的時(shí)候我跟Yahoo的一個(gè)技術(shù)高管聊的時(shí)候,我問他Yahoo在選擇MySQL還是Oracle的時(shí)候是怎么考慮告唆,他的答案令我非常驚訝棺弊。他說大部分的時(shí)候我們是會(huì)用MySQL的,因?yàn)樗男阅芤呀?jīng)達(dá)到我們的要求擒悬。但是什么時(shí)候我們會(huì)選用Oracle呢模她,就是當(dāng)我們需要存儲(chǔ)收費(fèi)用戶的數(shù)據(jù)的時(shí)候。我就問為什么懂牧,難道Oracle比MySQL穩(wěn)定嗎侈净?他說,這個(gè)倒沒有特別考慮僧凤。關(guān)鍵是如果使用Oracle的話用狱,當(dāng)出現(xiàn)問題的時(shí)候我們可以找到負(fù)責(zé)人,Oracle會(huì)負(fù)責(zé)事故的處理拼弃,但是如果用MySQL的話夏伊,我們找誰去?
所以吻氧,我們對(duì)數(shù)據(jù)庫的看法應(yīng)該糾正過來溺忧,就是說數(shù)據(jù)庫不是萬能的。如果有實(shí)力的話自己開發(fā)數(shù)據(jù)庫盯孙。聽說Google就是那樣的鲁森。
那么我們?cè)趺纯创龜?shù)據(jù)庫呢?我個(gè)人的理解是數(shù)據(jù)庫只是用來降低開發(fā)成本的手段振惰。因?yàn)椴捎脭?shù)據(jù)庫以后我們不需要考慮數(shù)據(jù)的存儲(chǔ)歌溉,尤其是排序和查找。但是這會(huì)帶來什么問題呢?就是當(dāng)業(yè)務(wù)膨脹的時(shí)候痛垛,數(shù)據(jù)庫就成為瓶頸了草慧!這個(gè)時(shí)候問題就會(huì)非常棘手!因?yàn)檫@個(gè)是底層的數(shù)據(jù)處理匙头。牽一發(fā)而動(dòng)全身漫谷。所以我認(rèn)為正確的觀點(diǎn)是,數(shù)據(jù)庫是一個(gè)數(shù)據(jù)備份機(jī)蹂析!怎么理解舔示,我們只需要保證數(shù)據(jù)的存儲(chǔ)有效性就行了。而這本來就是數(shù)據(jù)庫的核心功能电抚,只不過因?yàn)閿?shù)據(jù)庫的方便的排序等功能讓大家把過多的處理都交給數(shù)據(jù)庫來操作了惕稻。一個(gè)用戶的點(diǎn)擊PHP就把一大堆的任務(wù)交給數(shù)據(jù)庫,然后把結(jié)果排列下給用戶就完事了蝙叛。這對(duì)數(shù)據(jù)庫是不公平的缩宜!也是因此大家開始抱怨數(shù)據(jù)庫的性能了。
針對(duì)這個(gè)觀點(diǎn)甥温,我們?cè)倥e個(gè)例子锻煌,有一次我去拜訪一個(gè)大型的網(wǎng)絡(luò)公司(基本上國(guó)內(nèi)只要上過互聯(lián)網(wǎng)的都知道),他們使用PHP很少姻蚓,但是我了解到他們其它業(yè)務(wù)是怎么使用數(shù)據(jù)庫宋梧。他們自豪地跟我介紹說他們?cè)跀?shù)據(jù)庫的外圍有個(gè)第二數(shù)據(jù)庫(我這里起名叫第二數(shù)據(jù)庫)。為什么叫第二數(shù)據(jù)庫呢狰挡,原來它是一個(gè)緩存系統(tǒng)捂龄。那么開發(fā)工程師怎么去這個(gè)緩存系統(tǒng)獲取數(shù)據(jù)呢?那個(gè)技術(shù)總監(jiān)自豪地說加叁,他們這個(gè)緩存系統(tǒng)由SQL查詢語句倦沧!我當(dāng)時(shí)很驚訝,但是后來想想確實(shí)需要這個(gè)它匕。因?yàn)楫?dāng)你的緩存系統(tǒng)達(dá)到一定量級(jí)的時(shí)候從緩存獲取數(shù)據(jù)都非常復(fù)雜展融,干脆寫個(gè)SQL查詢語句讓緩存系統(tǒng)分析、處理并返回?cái)?shù)據(jù)豫柬。而且他們告訴我告希,在他們那里,就算是用PHP的話也是讓PHP去那個(gè)緩存系統(tǒng)讀取數(shù)據(jù)烧给。
所以說燕偶,如果你能處理好這樣的問題的話,把數(shù)據(jù)存放在數(shù)據(jù)庫础嫡,然后數(shù)據(jù)庫只起到備份的作用指么。然后你用自己的中間層來處理分析數(shù)據(jù),效果是90%以上的用戶訪問不訪問數(shù)據(jù)庫。有人就會(huì)說了伯诬,這不就類似連接池的東西嗎晚唇?是的!因?yàn)閿?shù)據(jù)庫的瓶頸是無法解決的姑廉,我們只能在Web服務(wù)器和數(shù)據(jù)庫中間加個(gè)中間層來做緩沖。
可能大家會(huì)說了翁涤,切桥言,這個(gè)我們?cè)缇椭懒耍∧呛每瘢@里我要說的是它引發(fā)的兩點(diǎn)思考:第一号阿,有些語言已經(jīng)有連接池技術(shù)的基礎(chǔ)上,那些程序員可以方便地使用連接池而構(gòu)建大型應(yīng)用鸳粉。那么如果他們認(rèn)為PHPer只會(huì)是用數(shù)據(jù)庫扔涧,那么我們是不是可以說他們只會(huì)是用連接池呢?連接池和數(shù)據(jù)庫在這個(gè)概念上有何區(qū)別届谈?第二枯夜,當(dāng)PHPer開始構(gòu)建自己的緩存系統(tǒng)的時(shí)候,他是不是突破了PHPer只會(huì)是用數(shù)據(jù)庫的層次艰山?因?yàn)樗麉⑴c了數(shù)據(jù)邏輯的處理工作湖雹。那么他還是草根嗎?
最后曙搬,新一代的PHPer是草根嗎摔吏?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市纵装,隨后出現(xiàn)的幾起案子征讲,更是在濱河造成了極大的恐慌,老刑警劉巖橡娄,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诗箍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡挽唉,警方通過查閱死者的電腦和手機(jī)扳还,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來橱夭,“玉大人氨距,你說我怎么就攤上這事〖樱” “怎么了俏让?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我首昔,道長(zhǎng)寡喝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任勒奇,我火速辦了婚禮预鬓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赊颠。我一直安慰自己格二,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布竣蹦。 她就那樣靜靜地躺著顶猜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪痘括。 梳的紋絲不亂的頭發(fā)上长窄,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音纲菌,去河邊找鬼挠日。 笑死,一個(gè)胖子當(dāng)著我的面吹牛翰舌,可吹牛的內(nèi)容都是我干的肆资。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼灶芝,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼郑原!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起夜涕,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤犯犁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后女器,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酸役,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年驾胆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涣澡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丧诺,死狀恐怖入桂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驳阎,我是刑警寧澤抗愁,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布馁蒂,位于F島的核電站,受9級(jí)特大地震影響蜘腌,放射性物質(zhì)發(fā)生泄漏沫屡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一撮珠、第九天 我趴在偏房一處隱蔽的房頂上張望沮脖。 院中可真熱鬧,春花似錦芯急、人聲如沸勺届。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涮因。三九已至废睦,卻和暖如春伺绽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗜湃。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工奈应, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人购披。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓杖挣,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親刚陡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惩妇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 以下文字并沒有非常多的技術(shù)詞匯歌殃,所以只要對(duì)PHP感興趣的人都可以看看。 PHPer是草根嗎蝙云? 從PHP誕生之日起...
    babybus_hentai閱讀 744評(píng)論 1 8
  • 一氓皱、MemCache簡(jiǎn)介 session MemCache是一個(gè)自由、源碼開放勃刨、高性能波材、分布式的分布式內(nèi)存對(duì)象緩存...
    李偉銘MIng閱讀 3,825評(píng)論 2 13
  • 轉(zhuǎn)載自cr180大神DiscuzX2.5完整目錄結(jié)構(gòu)【source程序文件庫】 /source/admincp后臺(tái)...
    cndaqiang閱讀 860評(píng)論 1 2
  • 學(xué)習(xí)路線圖引言: 黑馬程序員作為一個(gè)平臺(tái),歷經(jīng)十年身隐,免費(fèi)公布了十幾萬小時(shí)真實(shí)課堂視頻提供給IT自學(xué)者廷区。但通過反饋,...
    rosekissyou閱讀 5,527評(píng)論 8 216
  • 小鬼是個(gè)好鬼贾铝,從來都不嚇人躲因,因?yàn)樗约壕褪潜粐標(biāo)赖脑缇矗f他明白人被嚇到的痛苦〈舐觯“己所不欲搞监,勿施于人嘛” 嗯,看起來...
    ren安閱讀 323評(píng)論 0 0