分布式面試題(三) 分布式Memachche

2021-10-10 05:59:07 字數 1644 閱讀 7834

q:

memcached的 cache機制是怎樣的?

memcached主要的 cache機制是lru最近最少用演算法+超時失效。

當存資料到 memcached中,可以指定該資料在快取中可以呆多久 ;如果 memcached的記憶體不夠用了,過期的 slabs會優先被替換,接著就輪到老的未被使用的 slabs。

q:

memcached如何實現冗餘機制?

不實現。memcached應該是應用的快取層。

它的設計本身就不帶有任何冗餘機制。如果乙個 memcached節點失去了所有資料,應該可以從資料來源(比如資料庫)再次獲取到資料。特別注意,應用應該可以容忍節點的失效。不要寫一些糟糕的查詢**,寄希望於 memcached來保證一切,如果擔心節點失效會大大加重資料庫的負擔,那麼可以採取一些辦法。比如可以增加更多的節點(來減少丟失乙個節點的影響),熱備節點(在其他節點down了的時候接管ip等等)。

q:

memcached是如何做身份驗證的?

沒有身份認證機制;

memcached是執行在應用下層的軟體(身份驗證應該是應用上層的職責)。memcached的客戶端和伺服器端之所以是輕量級的,部分原因就是完全沒有實現身份驗證機制。這樣, memcached可以很快地建立新連線,伺服器端也無需任何配置。

如果希望限制訪問,可以使用防火牆,或者讓 memcached監聽unix domain socket.

q:

memcached能接受的key的最大長度是多少?

key的最大長度是250個字元。

需要注意的是,250是 memcached伺服器端內部的限制,如果使用的客戶端支援key的字首或類似特性,那麼key(字首+原始key)的最大長度是可以超過250個字元的。推薦使用較短的key,因為可以節省記憶體和頻寬。

q:

memcached對item的過期時間有什麼限制?

過期時間最大可以達到30天。memcached把傳入的過期時間(時間段)解釋成時間點後,一旦到了這個時間點,memcache就把item置為失效狀態。這是乙個簡單但 obscure的機制。

q:

memcached最大能儲存多大的單個item?

1mb。如果資料大於1mb,可以考慮在客戶端壓縮或拆分到多個key中。

q:

memcached的多執行緒是什麼?如何使用它們?

memcached1.2及更高版本擁有了多執行緒模式。多執行緒模式允許 memcached能夠充分利用多個cpu,並在cpu之間共享所有的快取資料。memcached使用一種簡單的鎖機制來保證資料更新操作的互斥。相比在同乙個物理機器上執行多個 memcached例項,這種方式能夠更有效地處理 multi gets。

如果系統負載並不重,也許不需要啟用多執行緒工作模式。如果您在執行乙個擁有大規模硬體的、龐大的**,將會看到多執行緒的好處。

簡單地總結一下:命令解析,memcached在這裡花了大部分時間可以執行在多執行緒模式下。memcached內部對資料的操作是基於很多全域性鎖的(因此這部分工作不是多執行緒的)。未來對多執行緒模式的改進,將移除大量的全域性鎖,提高 memcached在負載極高的場景下的效能。

分布式計算(三)分布式的昨天

當今的我們已經處於計算機比較發達的時代,計算機的很多技術已經發展很久,很多我們現在使用的都是在一定基礎結構之上的研究,就好像我們學會了hadoop,webservices.學會了大資料計算,就是掌握了分布式技術嗎?感覺心慌 疑惑。這些疑惑不知道從什麼時候開始的,所以要想弄清是怎麼回事,還是回到遙遠的...

分布式學習筆記(三) 分布式選舉

在乙個分布式集群中負責對其他節點的協調和管理,其他節點都必須聽從主節點的安排。主節點的存在,就可以保證其他節點的有序執行,以及資料庫集群中的寫入資料在每個節點上的一致性。這裡的一致性是指,資料在每個集群節點中都是一樣的,不存在不同的情況。選舉的作用就是選出乙個主節點,由它來協調和管理其他節點,以保證...

分布式 分布式場景下面試題

redis相比memcached有哪些優勢 執行緒模型 redis 基於 reactor 模式開發了自己的網路事件處理器 這個處理器被稱為檔案事件處理器 file event handler 雖然檔案事件處理器以單執行緒方式執行,但通過使用 i o 多路復用程式來監聽多個套接字,檔案事件處理器既實現...