session.flush()與session.clear()

來源:https://www.cnblogs.com/hym-pcitc/p/6023362.html

session.flush()和session.clear()就針對(duì)session的一級(jí)緩存的處理。

簡(jiǎn)單的說,

1 session.flush()的作用就是將session的緩存中的數(shù)據(jù)與數(shù)據(jù)庫同步。

2 session.clear()的作用就是清除session中的緩存數(shù)據(jù)(不管緩存與數(shù)據(jù)庫的同步)。


執(zhí)行完session.flush()時(shí),并不意味著數(shù)據(jù)就肯定持久化到數(shù)據(jù)庫中的,因?yàn)槭聞?wù)控制著數(shù)據(jù)庫,如果事務(wù)提交失敗了,緩存中的數(shù)據(jù)還是照樣會(huì)被回滾的。


flush本意是沖刷,這個(gè)方法大概取自它引申義沖馬桶的意思,馬桶有個(gè)池子,你往里面扔?xùn)|西,會(huì)暫時(shí)保存在池子里,只有你放水沖下去,東西才會(huì)進(jìn)入下水道。

同理很多流都有一個(gè)這樣的池子,專業(yè)術(shù)語叫緩沖區(qū),當(dāng)你print或者write的時(shí)候,會(huì)暫時(shí)保存在緩沖區(qū),并沒有發(fā)送出去,這是出于效率考慮的,因?yàn)閿?shù)據(jù)不會(huì)自己發(fā)送過去,必須有其他機(jī)制,而且這個(gè)很消耗資源,就像馬桶你需要很多水,才能沖走,你如果扔一點(diǎn)東西,就沖一次水,那你水費(fèi)要爆表了,同樣如果你寫一行文字,或者一個(gè)字節(jié),就要馬上發(fā)送出去,那網(wǎng)絡(luò)流量,CPU使用率等等都要爆表了,所以一般只有在你真正需要發(fā)送否則無法繼續(xù)的時(shí)候,調(diào)用flush,將數(shù)據(jù)發(fā)送出去。


http://blog.csdn.net/leidengyan/article/details/7514484

session.flush()和session.clear()就針對(duì)session的一級(jí)緩存的處理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容