MemCached快取知識知多少?

2021-07-24 17:31:29 字數 1490 閱讀 4076

1. memcached是神馬?

memcached  是乙個高效能的分布式記憶體物件快取系統,用於動態web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提高動態、資料庫驅動**的速度。memcached基於乙個儲存鍵/值對的hashmap。其守護程序(daemon )是用c寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護程序通訊。

memcached最早是由 brad fitzpatrick 在2023年為livejournal而開發的快取程式。目前最新的版本為v1.4.22.

2. memcached的特點?

協議簡單:memcached的伺服器客戶端通訊並不使用複雜的mxl等格式,而是使用簡單的基於文字的協議。

基於libevent的事件處理:libevent是個程式庫,他將linux 的epoll、bsd類作業系統的kqueue等時間處理功能封裝成統一的介面。    memcached使用這個libevent庫,因此能在linux、bsd、solaris等作業系統上發揮其高效能。

內建記憶體儲存方式:為了提高效能,memcached中儲存的資料都儲存在memcached內建的記憶體儲存空間中。由於資料僅存在於記憶體中,因此重啟memcached,重啟作業系統會導致全部資料消失。另外,內容容量達到指定的值之後memcached回自動刪除不適用的快取。

不互通訊的分布式:memcached儘管是「分布式」快取伺服器,但伺服器端並沒有分布式功能。各個memcached不會互相通訊以共享資訊。他的分布式主要是通過客戶端實現的。

3. memcached儲存方式?

為了提高效能,memcached中儲存的資料都儲存在memcached內建的記憶體儲存空間中。由於資料僅存在於記憶體中,因此重啟memcached、重啟作業系統會導致全部資料消失。另外,內容容量達到指定值之後,就基於lru(least recently used)演算法自動刪除不使用的快取。memcached本身是為快取而設計的伺服器,因此並沒有過多考慮資料的永久性問題。

4. memcached與redis的pk?

每秒處理的請求數不是瓶頸:redis只使用單核,而memcached可以使用多核,所以二者比較起來,平均每乙個核上,redis在儲存小資料時比memcached效能更高。而在100k以上的資料中,memcached效能要高於redis。雖然redis最近也在儲存大資料的效能上進行優化,但是比起memcached,還是稍有遜色。

記憶體使用效率:如果使用簡單的key-value儲存,memcached的記憶體利用率更高。而如果redis採用hash結構來做key-value儲存,由於其組合式的壓縮,其記憶體利用率會高於memcached。當然,這和你的應用場景和資料特性有關。

資料持久化與資料同步:redis支援,memcached不支援。

資料結構:redis相比memcached來說,擁有更多的資料結構,並支援更豐富的資料操作。通常在memcached裡,你需要將資料拿到客戶端來進行類似的修改再set回去。這大大增加了網路io的次數和資料體積。在redis中,這些複雜的操作通常和一般的get/set一樣高效。

MemCached配置與快取知識概述

快取 cache memory 是硬碟控制器上的一塊記憶體晶元,具有極快的訪問速度,它是硬碟內部儲存和外界介面之間的緩衝器。由於硬碟的內部資料傳輸速度和外界介面傳輸速度不同,快取在其中起到乙個緩衝的作用。快取的大小與速度是直接關係到硬碟的傳輸速度的重要因素,能夠大幅度地提高硬碟整體效能。當硬碟訪問零...

Memcached 快取體系

關於memcached的博文太多了,以下是個人學習的收集整理。本節討論問題 一 介紹與應用 關於memcached以下為摘自博文 客戶端的版本比較多,並且不能互用,因為採用了壓縮機制,日誌等功能,所以在選擇客戶端時要注意這些。a.windows下 直接使用memcached.exe 程式就可以了,也...

memcached 快取應用問題

快取穿透與快取雪崩 快取系統不得不考慮的另乙個問題是快取穿透與失效時的雪崩效應。快取穿透是指查詢乙個一定不存在的資料,由於快取是不命中時被動寫的,並且出於容錯考慮,如果從儲存層查不到資料則不寫入快取,這將導致這個存在的資料每次請求都要到儲存層去查詢,失去了快取的意義。有很多種方法可以有效地解決快取穿...