將想法與焦點(diǎn)和您一起共享

網(wǎng)站對象緩存發(fā)布者:本站     時(shí)間:2019-11-12 13:11:43

對象緩存用于存儲會(huì )被應用再用到的對象。這些對象通常來(lái)自數據庫,或由計算或應用操作生成。這些對象幾乎都是有序對象,會(huì )被排列或組編成有序的格式,以便最小化內存占用量。在獲取這些對象時(shí),它們的排序會(huì )被打亂或解編,以轉換成原始的數據類(lèi)型。所謂組編,就是把對象的內存表示形式轉換成字節流或字節序列進(jìn)程,以便存儲或傳輸。所謂解編,就是把字節流表示的對象解碼成原始的對象格式的進(jìn)程。如果使用了對象緩存,應用必須注意到它們,并且實(shí)現操作緩存的方法。

操作緩存的基本方法包括把數據加人緩存、從緩存中獲取數據以及更新數據。通常在緩存中添加數據叫做set,從緩存中獲取數據叫做get,更新數據是replace。許多程序設計語(yǔ)言對最流行的緩存都已經(jīng)有內置的支持。memcached是當前最常用的緩存之一。它“本質(zhì)上是一種高性能的分布式內存對象緩存系統,但目的在于通過(guò)減輕數據庫的負載來(lái)加速動(dòng)態(tài)的Web應用”。這種特殊的緩存使用了非??斓臒o(wú)阻塞網(wǎng)絡(luò )輸入輸出(IO),它自身具備防止內存分片的slab分配器、可以確保分配是的,即不論數據多少都能夠在常數時(shí)間內進(jìn)行計算。
 
正如在memcached的描述中所說(shuō)的,它主要是通過(guò)減少對數據庫的請求,從而加速了Web應用。這種方法是合理的,因為數據庫幾乎總是應用層中獲取數據最慢的設備。在關(guān)系數據庫管理系統中,實(shí)現ACID(原子性、一致性、隔離性、持久性)屬性的額外支出是很高的,尤其是要從硬盤(pán)讀寫(xiě)數據時(shí)。但在某些情況下,在系統的其他層之間使用對象緩存層,也是完全正常和明智的。
 
在一個(gè)典型的兩層或者三層架構中,放置對象緩存最好的方法是把它放在數據庫層之前。正如前面提到過(guò)的,這是因為數據庫層通常是整體執行速度最慢的層,也通常是擴展最貴的一層。其中有一個(gè)Web服務(wù)器層、一個(gè)應用服務(wù)器層和一個(gè)數據庫層。這里不止有一個(gè)對象緩存,而是有兩個(gè)。一個(gè)對象緩存位于應用服務(wù)器與數據庫層之間,另一個(gè)位于Web服務(wù)器與應用服務(wù)器之間。如果應用服務(wù)器要執行大量可緩存的計算或操作,那么這種設計是很合理的。這樣可以使應用服務(wù)器不必總是重復計算相同的數據,而是可以把結果緩存起來(lái),從而減輕了應用服務(wù)器的負載。與數據庫的情況相似,這個(gè)緩存層可以在不添加硬件的情況下,幫助應用服務(wù)器層擴展。緩存的對象很可能是來(lái)自數據庫或應用服務(wù)器的完整數據集的子集。例如,Web服務(wù)器上的應用代碼可能會(huì )利用緩存存放用戶(hù)權限對象,但是不會(huì )存放交易金額,因為用戶(hù)權限不經(jīng)常改變且會(huì )被經(jīng)常訪(fǎng)問(wèn),而每個(gè)交易的交易金額可能各不同且只會(huì )被訪(fǎng)問(wèn)一次。
 
數據庫的ACID屬性
 
原子性、一致性、隔離性、持久性(ACID)是數據庫管理系統采用的屬性,以確保交易是完全可靠的。
 
原子性是數據庫管理系統的屬性,可以確保一個(gè)交易的所有任務(wù)都被完全執行了,或者整個(gè)交易都被回退了。硬件或軟件的故障不會(huì )造成交易只完成了一半。
 
一致性是確保交易前和交易后數據庫保持穩定狀態(tài)的屬性。如果一個(gè)交易成功了,它會(huì )把數據庫從一個(gè)有效狀態(tài)轉換到另一個(gè)符合一定規則的有效狀態(tài)。
 
隔離性是在一個(gè)交易操作數據時(shí),防止另一個(gè)交易訪(fǎng)問(wèn)它的屬性。大多數數據庫管理系統都采用數據庫鎖來(lái)確保隔離性。
 
持久性這個(gè)屬性指的是在系統把交易標記為成功后,交易就會(huì )保持為完成的、不會(huì )回退的。所有的一致性檢查必須在交易被認為是完成了之前完成。
 
如果你在網(wǎng)站建設數據庫或應用服務(wù)器中有經(jīng)常被訪(fǎng)問(wèn)但卻不經(jīng)常更新的數據,那么使用對象緩存就非常合理。要減少負載,首先查看的就是數據庫,因為它通常是最慢也是最貴的一層。但除此之外,還要考慮一下系統中的其他層或池,看看哪里需要對象緩存。另一個(gè)可能需要對象緩存的地方是集中的會(huì )話(huà)管理緩存。如果你使用了會(huì )話(huà)數據,我們建議你首先盡可能地減少會(huì )話(huà)數據。如果你可以避免使用會(huì )話(huà),那么就根本不要采用它們,因為它們在基礎設施和架構方面,實(shí)現成本都很高。如果你不能避免使用會(huì )話(huà),我們建議你考慮集中的會(huì )話(huà)管理系統,這樣可以把請求發(fā)送到任何一個(gè)Web服務(wù)器上,會(huì )話(huà)可以從一個(gè)服務(wù)器轉移到另一個(gè)服務(wù)器上,不會(huì )造成任何干擾。這樣通過(guò)一個(gè)負載均衡的解決方案,你就能夠更有效地利用Web服務(wù)器,而當發(fā)生故障時(shí),也可以以最小的干擾,把用戶(hù)從一臺服務(wù)器上轉移到另一臺服務(wù)器上。你可以繼續檢查自己的應用,找到更多可以應用對象緩存的地方。



選擇我們,優(yōu)質(zhì)服務(wù),不容錯過(guò)
1. 優(yōu)秀的網(wǎng)絡(luò )資源,強大的網(wǎng)站優(yōu)化技術(shù),穩定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設經(jīng)驗,優(yōu)秀的技術(shù)和設計水平,更放心
3. 全程省心服務(wù),不必擔心自己不懂網(wǎng)絡(luò ),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話(huà):021-58370032
最新国产精品第二页_色资源av中文无码先锋_中国xx爽69护士_日韩欧美亚洲每日更新在线观看