一、memcached是什麼?
memcached是乙個免費、開源、高效能、分布式、基於記憶體的物件快取系統。一般來說,使用memcached可以加速動態web程式(通過緩解資料庫負載)。它可以key-value(string,object)形式,儲存任意資料,如資料庫呼叫結果、api呼叫結果等。
memcached主要由4部分組成:
1. 客戶端軟體,記錄了所有有效memcached伺服器資訊;
2. 乙個基於客戶端的hash演算法,輸入的key通過該演算法找出特定memcached伺服器;
3. 伺服器軟體,在乙個內部hash表中儲存key-value;
4. 伺服器演算法,該演算法決定何時請出舊資料以及重用記憶體。
memcached的設計理念:
1. 簡單key/value儲存(每條記錄包括乙個key、乙個原生value值、乙個過期時間、乙個可選的flag),並且不關心value的型別,可以存放任意資料型別;
2. 邏輯分別放在客戶端與伺服器端;
3. 伺服器端彼此無感知;
4. 所有操作時間複雜度為o(1);
5. 到期資料自動過期,釋放出記憶體為其它應用使用。
理解誤區:
不要理解為使用了memcached會使程式跑得更快,memcached只是乙個開發工具,而不是**加速器,或者可以理解為資料庫中介軟體,memcached會減少你與資料庫的互動時間,從而感覺上是**"變快"了。
二、memcached架構圖
專案主項:
memcached 簡單介紹
memcached是一套分布式的快取系統,當初是danga interactive為了livejournal所發展的,但被許多軟體 如mediawiki 所使用。這是一套開放源 軟體,以bsd license授權協議發布。1 memcached缺乏認證以及安全管制,這代表應該將memcached伺服...
Redis與Memcached應用的簡單比較
這兩年redis火得可以,redis也常常被當作memcached 的挑戰者被提到桌面上來。關於redis與memcached的比較更是比比皆是。然而,redis真的在功能 效能以及記憶體使用效率上都超越了memcached嗎?下面內容來自redis作者在stackoverflow上的乙個回答,對應...
python對memcached的簡單操作
python memcached模組原生支援集群操作,其原理是在記憶體維護乙個主機列表,且集群中主機的權重值和主機在列表中重複出現的次數成正比。主機 權重 1.1.1.1 11.1 1.2 21.1 1.31 那麼在記憶體中主機列表為 host list 1.1.1.1 1.1.1.2 1.1.1....