您好,登錄后才能下訂單哦!
這篇文章主要介紹了Memcached的性能、優點和限制是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Memcached的性能、優點和限制是什么文章都會有所收獲,下面我們一起來看看吧。
Memcached 是一個高性能、分布式內存對象緩存系統,本質上是通用的,但目的是為了通過減輕數據庫負載來加快動態網絡應用的速度。
1. 節點均衡的網狀( JBoss Tree Cache ),利用 JGroup 的多播通信機制來同步數據。
2.Master-Slaves 模式(分布式文件系統),由 Master 來管理 Slave ,如何選擇 Slave ,如何遷移數據,都是由 Master 來完成,但是 Master 本身也存在單點問題。
內存存儲,速度快,對于內存的要求高,所緩存的內容非持久化。對于 CPU 要求很低,所以常常采用將 Memcached 服務端和一些 CPU 高消耗 Memory 低消耗應用部屬在一起 。(否則會互相擠占資源)
避開了分布式 Cache 的傳播問題,但是需要非單點保證其可靠性,這需要 cluster 的工作,可以將多個 Memcached 作為一個虛擬的 cluster ,同時對于 cluster 的讀寫和普通的 memcached 的讀寫性能沒有差別。
Memcached 很突出的一個優點,就是采用了可分布式擴展的模式。可以將部屬在一臺機器上的多個 Memcached 服務端或者部署在多個機器上的 Memcached 服務端組成一個虛擬的服務端,對于調用者來說完全屏蔽和透明。提高的單機器的內存利用率 。
傳輸內容的大小以及序列化的問題需要注意,雖然 Memcached 通常會被放置到內網作為 Cache, Socket 傳輸速率應該比較高(當前支持 Tcp 和 udp 兩種模式,同時根據客戶端的不同可以選擇使用 nio 的同步或者異步調用方式),但是序列化成本和帶寬成本還是需要注意。這里也提一下序列化,對于對象序列化的性能往往讓大家頭痛,但是如果對于同一類的 Class 對象序列化傳輸,第一次序列化時間比較長,后續就會優化,其實也就是說序列化最大的消耗不是對象序列化,而是類的序列化。如果穿過去的只是字符串,那么是最好的,省去了序列化的操作,因此在 Memcached 中保存的往往是較小的內容 。
首先要說明的是 Memcached 支持最大的存儲對象為 1M (page)。它的內存分配比較特殊,但是這樣的分配方式其實也是對于性能考慮的,簡單的分配機制可以更容易回收再分配,節省對于 CPU 的使用(前面的文章中有描述) 。
首先它沒有什么同步,消息分發,兩階段提交等等,它就是一個很簡單的 Cache ,把東西放進去,然后可以取出來,如果發現所提供的 Key 沒有命中,那么就很直白的告訴你,你這個 key 沒有任何對應的東西在緩存里,去數據庫或者其他地方取,當你在外部數據源取到的時候,可以直接將內容置入到 Cache 中,這樣下次就可以命中了 。這里會提到怎么去同步這些數據,兩種方式,一種就是在你修改了以后立刻更新 Cache內容,這樣就會即時生效。另一種是說容許有失效時間,到了失效時間,自然就會將內容刪除,此時再去去的時候就會命中不了,然后再次將內容置入 Cache ,用來更新內容。后者用在一些時時性要求不高,寫入不頻繁的情況。
客戶端設計的合理十分重要,同時也給使用者提供了很大的空間去擴展和設計客戶端來滿足各種場景的需要,包括容錯,權重,效率,特殊的功能性需求,嵌入框架等等。
小對象的緩存(用戶的 token ,權限信息,資源信息)。小的靜態資源緩存。 Sql 結果的緩存(這部分用的好,性能提高相當大。)
關于“Memcached的性能、優點和限制是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Memcached的性能、優點和限制是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。