PHP和ASP.NET在Session實(shí)現(xiàn)和管理機(jī)制上有什么差異

本篇內(nèi)容介紹了“PHP和 ASP.NET在Session實(shí)現(xiàn)和管理機(jī)制上有什么差異”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括雙橋網(wǎng)站建設(shè)、雙橋網(wǎng)站制作、雙橋網(wǎng)頁(yè)制作以及雙橋網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,雙橋網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到雙橋省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!

Session篇:

PHP默認(rèn)使用文件存儲(chǔ)session數(shù)據(jù), asp.net 默認(rèn)保存在IIS進(jìn)程內(nèi)存中

PHP和 ASP.NET在Session實(shí)現(xiàn)和管理機(jī)制上有什么差異PHP和 ASP.NET在Session實(shí)現(xiàn)和管理機(jī)制上有什么差異PHP和 ASP.NET在Session實(shí)現(xiàn)和管理機(jī)制上有什么差異
PHP方式優(yōu)點(diǎn):穩(wěn)定可靠不易丟失,nginx或apache服務(wù)器重啟不影響session丟失,session穩(wěn)定可靠。整過(guò)機(jī)制簡(jiǎn)易透明,用戶(hù)可以直接刪除session目錄下的文件讓session失效,可以方便地實(shí)現(xiàn)asp.net 很難實(shí)現(xiàn)的一些特殊需求,如需要在用戶(hù)的請(qǐng)求或系統(tǒng)某些事件發(fā)生后要讓指定的A用戶(hù)session失效,然后必須強(qiáng)制從數(shù)據(jù)庫(kù)讀最新記錄,假如有這一樣矛盾的性能優(yōu)化場(chǎng)景設(shè)計(jì):假如用戶(hù)表User有余額字段Balance, 要讓用戶(hù)A登錄自己的后臺(tái)看到自己的余額是最新的,而又不想每刷新一次面就請(qǐng)求一次數(shù)據(jù)庫(kù)造成不必要的壓力,最好的做法是把某用戶(hù)的記錄實(shí)體保存在Session當(dāng)中,每次從Session中讀取自己的余額字段顯示,就不會(huì)給數(shù)據(jù)庫(kù)造成壓力,只有當(dāng)余額字段 Balance變化后即時(shí)清除掉這用戶(hù)的Seesion然后強(qiáng)制讓他去讀最新的數(shù)據(jù)庫(kù)字段,但當(dāng)其它事件發(fā)生時(shí)如:其它用戶(hù)給A轉(zhuǎn)賬后要清除A的緩存,系統(tǒng)發(fā)生的退款、扣款、獎(jiǎng)勵(lì)到余額引起余額變化時(shí)要清除A的緩存,由于php的透明機(jī)制直接刪除對(duì)應(yīng)session文件就可以,但用iis就很麻煩了,由于微軟偏向于session放在內(nèi)存中,封閉成黑盒又沒(méi)提供對(duì)應(yīng)操作接口就悲劇了,只有通過(guò)其他辦法曲線(xiàn)救國(guó)。

PHP方式缺點(diǎn):性能欠佳不如保存在內(nèi)存里快,而且產(chǎn)生大量的小文件,反復(fù)創(chuàng)建刪除 這些小文件會(huì)造成磁盤(pán)碎片久而久之會(huì)拖慢整個(gè)磁盤(pán)的性能,產(chǎn)生大量文件句柄占用操作系統(tǒng)文件句柄,進(jìn)而影響性能,網(wǎng)站訪(fǎng)問(wèn)量上升后是個(gè)悲劇,可能在一個(gè)目錄下產(chǎn)生數(shù)百萬(wàn)個(gè)小文件,即時(shí)運(yùn)行在linux這樣一切皆文件思想的操作系統(tǒng)上也是非常影響文件系統(tǒng)性能,會(huì)嚴(yán)重拉低整個(gè)操作系統(tǒng)的磁盤(pán)性能。所以這個(gè)默認(rèn)機(jī)制性能上不如IIS的默認(rèn)存儲(chǔ)在進(jìn)程存儲(chǔ)快。 那些神吹開(kāi)源技術(shù)性能設(shè)計(jì)比windows先進(jìn)的人自行打臉,最近深入了解lamp,lnmp后發(fā)現(xiàn)有很多過(guò)時(shí)的設(shè)計(jì)無(wú)法跟上時(shí)代,如php無(wú)法使用真正的數(shù)據(jù)庫(kù)連接池等很多比原本想像來(lái)嚴(yán)重得多的問(wèn)題,當(dāng)然 般都會(huì)有第三方非主流折騰代替的方案,如使用memcache內(nèi)存方式保存session在內(nèi)存中也是可以的,但需要手工折騰一下。

PHP分布式session的支持:在高并發(fā)多臺(tái)服務(wù)器負(fù)載均衡的環(huán)境中,兩臺(tái)nginx 或apache要共享session 一般是把session保存在數(shù)據(jù)庫(kù)中,然后不同的負(fù)載主機(jī)共連一個(gè)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn),數(shù)據(jù)庫(kù)的性能和讀寫(xiě)文件實(shí)際沒(méi)有本質(zhì)區(qū)別,穩(wěn)定性依然強(qiáng),但性能依然是弱點(diǎn)
ASP.NET方式優(yōu)點(diǎn):速度快,不用讀寫(xiě)磁盤(pán)顯然這是很自然的是

ASP.NET方式缺點(diǎn):很不穩(wěn)定,不要說(shuō)重啟IIS網(wǎng)站這樣的極端操作會(huì)丟失Session,就算是改動(dòng)了配置文件 web.config或者變動(dòng)了bin目錄下的dll導(dǎo)致網(wǎng)站重新編譯的操作都會(huì)重置內(nèi)存導(dǎo)致Session丟失,這就是為什么在asp.net 開(kāi)始調(diào)試期間常常遇到測(cè)試人員登錄系統(tǒng)沒(méi)幾秒就可能session丟失的奇怪幻像,一般都是有程序員在頻繁更新程序,只要更新一次就全面丟失一次session; 微軟的解決方案也足夠簡(jiǎn)單好用,使用一個(gè)獨(dú)立的ASP.NET State Service狀態(tài)服務(wù)進(jìn)程來(lái)保存session信息,注意使用ASP.NET State Service后數(shù)據(jù)還是保存在內(nèi)存中,只不過(guò)是一個(gè)獨(dú)立的服務(wù)進(jìn)程,默認(rèn)通過(guò)監(jiān)聽(tīng)tcpip=127.0.0.1:42424端口跨進(jìn)程通信保存信息,

這樣就算IIS重啟也不會(huì)導(dǎo)致用戶(hù)登錄session丟失,穩(wěn)定性解決了,同時(shí)數(shù)據(jù)還是保存在內(nèi)在中速度性能遠(yuǎn)高于php的文件存儲(chǔ)方案。而且狀態(tài)服務(wù)每臺(tái)電腦都默認(rèn)安裝,只需要啟動(dòng)就行。方便性和性能已經(jīng)甩下php不在一個(gè)級(jí)別了。

ASP.NET分布式session的實(shí)現(xiàn):在高并發(fā)多臺(tái)服務(wù)器負(fù)載均衡的環(huán)境中,兩臺(tái)IIS要共享session非常簡(jiǎn),只需要共同連接一臺(tái)狀態(tài)服務(wù)器就可以共享session,通過(guò)簡(jiǎn)單設(shè)置就可以讓狀態(tài)服務(wù)打開(kāi)遠(yuǎn)程訪(fǎng)問(wèn)功能。當(dāng)然asp.net也是支持把session保存到數(shù)據(jù)庫(kù)的,但很少有人這樣用沒(méi)有太大的理由采用這種方案。

“PHP和 ASP.NET在Session實(shí)現(xiàn)和管理機(jī)制上有什么差異”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

本文標(biāo)題:PHP和ASP.NET在Session實(shí)現(xiàn)和管理機(jī)制上有什么差異
網(wǎng)站地址:http://bm7419.com/article18/isggdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、用戶(hù)體驗(yàn)、App開(kāi)發(fā)、網(wǎng)站制作、服務(wù)器托管、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)