memcached - a distributed memory object caching system

關於 Memcached

memcached 是一個高性能、分散式記憶體物件快取系統,本質上是通用的,但最初是用來透過減輕資料庫負載來加速動態 Web 應用程式。

你可以把它想成應用程式的短期記憶體。

它的功能

usage

memcached 允許你從系統中記憶體較多的地方取得記憶體,並讓記憶體較少的地方可以使用。

memcached 也能讓你更有效地使用記憶體。如果你考慮右側的圖表,你可以看到兩種部署情境

  1. 每個節點完全獨立(頂部)。
  2. 每個節點都可以使用其他節點的記憶體(底部)。

第一個情境說明了傳統的部署策略,然而你會發現它既浪費,因為快取總大小只是 Web 農場實際容量的一小部分,而且在所有這些節點中保持快取一致所需的努力也很大。

使用 memcached,你可以看到所有伺服器都在查看同一個虛擬記憶體池。這表示特定項目始終儲存在整個 Web 群集中的同一個位置,並始終從該位置擷取。

此外,隨著應用程式需求增加到需要更多伺服器時,通常在必須定期存取的資料方面也會增加。一種讓系統的這兩個面向一起擴充的部署策略很有道理。

右側的說明為簡潔起見只顯示兩個 Web 伺服器,但隨著數量增加,屬性保持不變。如果你有五十個 Web 伺服器,在第一個範例中,你仍然會有 64MB 的可用快取大小,但在第二個範例中,你會有 3.2GB 的可用快取。

當然,你不需要使用 Web 伺服器的記憶體作為快取。許多 memcached 使用者有專用的機器,專門用來當作 memcached 伺服器。

起源

Memcached 最初是由 Brad Fitzpatrick 於 2003 年為 LiveJournal 開發。

貢獻者

dormando (978) Dustin Sallings (214) Brad Fitzpatrick (164) Trond Norbye (130)
Paul Lindner (58) Toru Maesaka (34) Steven Grimm (25) David Carlier (23)
Kevin Lin (17) Stanisław Pitucha (16) Anatoly Vorobey (15) Brian Aker (15)
Steve Yen (15) Tomash Brechko (12) minkikim89 (12) Fei Hu (9)
Tharanga Gamaethige (9) Tomas Korbar (7) hachi (7) Aaron Stone (6)
Dan McGee (6) Guillaume Delacour (6) Kanak Kshetri (6) Ola Jeppsson (6)
Steve Wills (6) Daniel Schemmel (5) Evan Martin (5) Fabrice Fontaine (5)
Matt Ingenthron (5) Miroslav Lichvar (5) Peter (Stig) Edwards (5) Sailesh Mukil (5)
xuesenliang (5) Chris Goffinet (4) Craig Andrews (4) David CARLIER (4)
Eric McConville (4) Finn Frankis (4) Jefty Negapatan (4) Remi Collet (4)
Victor Kirkebo (4) Andrei Nigmatulin (3) Calin Iorgulescu (3) Cameron Norman (3)
Daniel Pañeda (3) Eric Lambert (3) Jay Grizzard (3) Paul Furtado (3)
Qu Chen (3) sergiocarlos (3) Antony Dovgal (2) Bernhard M. Wiedemann (2)
Brion Vibber (2) Carl Myers (2) Clint Byrum (2) Colin Pitrat (2)
Cosimo Streppone (2) David Bremner (2) Dmitry Volodin (2) Doug Porter (2)
Eric Hodel (2) Evan Miller (2) Giovanni Bechis (2) Iqram Mahmud (2)
J. Grizzard (2) Jason CHAN (2) Jay Bonci (2) Jean-Francois BUSTARRET (2)
Josh Soref (2) Khem Raj (2) Linkerist (2) Mat Hostetter (2)
Monty Taylor (2) Olof Nord (2) Paolo Borelli (2) Ricky Zhou (2)
Shiv Nagarajan (2) Tianon Gravi (2) Tyson Andre (2) Vadim Pushtaev (2)
pkarumanchi9 (2) 祁冰 (2) Adam Chainz (1) Adam Dixon (1)
Adam Szkoda (1) Adam Thomason (1) Alex Leone (1) Alexander Pyhalov (1)
Ali Saidi (1) Alwayswithme (1) Andre Azevedo Pinto (1) Andrew Drake (1)
Andrew Glinskiy (1) Andrey Niakhaichyk (1) Anthony Ryan (1) Artur Bergman (1)
Baptiste Mille-Mathias (1) Ben Evans (1) Caleb Shay (1) CaptTofu (1)
Chang Song (1) Charmander (1) Chen-Yu Tsai (1) Clinton Webb (1)
Dagobert Michelsen (1) Dan Christian (1) Daniel Byrne (1) Danny Kopping (1)
David Bohman (1) David J. M. Karlsen (1) David Oliveira (1) David Phillips (1)
David Schoen (1) Dmitry Isaykin (1) Don MacAskill (1) Eiichi Tsukata (1)
Eli Bingham (1) Elizabeth Mattijsen (1) Evan Klitzke (1) Fangrui Song (1)
Filipe Laborde (1) Fordy (1) Fumihiro Ito (1) Gabe Van Engel (1)
Gabriel A. Samfira (1) Gleicon Moraes (1) Gordon Franke (1) Grant Mathews (1)
Gregor Jasny (1) Guido Iaquinti (1) Hemal Shah (1) Hervé Beraud (1)
Huzaifa Sidhpurwala (1) Iain Wade (1) Ian Miell (1) Iliya (1)
Ing-eoking (1) James Cohen (1) Jamie McCarthy (1) Jason Titus (1)
Jeff Lawson (1) Jeremy Sowden (1) Joe Orton (1) Johan Bergström (1)
John Leslie (1) Jon Jensen (1) Jonathan Bastien-Filiatrault (1) Jonathan Steinert (1)
Josh Kupershmidt (1) Juliy V. Chirkov (1) Junji Hashimoto (1) Jørgen Austvik (1)
Kenneth Steele (1) Keyur (1) KissPeter (1) Kleber (1)
LSmithx2 (1) Levente Polyak (1) Lisa Seelye (1) Léon Brocard (1)
Maksim Zhylinski (1) Manish Katiyar (1) Mark Hagger (1) Martin Tzvetanov Grigorov (1)
Mate Borcsok (1) Mathieu CARBONNEAUX (1) Matt Fowles Kulukundis (1) Matthew Shafer (1)
Mattias Geniar (1) Maxim Dounin (1) Menghan (1) Michael Alan Dorman (1)
Mike Dillon (1) Miklos Vajna (1) Natanael Copa (1) Nate (1)
Nathan Neulinger (1) Nick (1) Nick Frost (1) Nick Pillitteri (1)
Ori Shalev (1) Oskari Saarenmaa (1) Patrice Duroux (1) Paul Querna (1)
Peter van Dijk (1) Piotr Balcer (1) Prudhviraj K (1) Qian Li (1)
Ramasai (1) Raphael Isemann (1) Richard Russo (1) River Tarnell (1)
Roman Mueller (1) Ryan McCullagh (1) Ryan T. Dean (1) Ryan Tomayko (1)
Saman Barghi (1) Sergei Trofimovich (1) Sergio Durigan Junior (1) Sharif Nassar (1)
Simon Liu (1) Sjon Hortensius (1) Sridhar Samudrala (1) Steve Peters (1)
Tao Hui (1) Ted Schundler (1) Theo Najim (1) Thomas van Gulick (1)
Tim Yardley (1) Tom Stellard (1) Tomas Kalibera (1) Torsten Foertsch (1)
Vladimir (1) Wing Lian (1) Yongyue Sun (1) Zheng Gu (1)
ajccosta (1) akisssa (1) bitground (1) clark.kang (1)
githublvv (1) hayashier (1) hiracy (1) iqr4m (1)
js (1) jwbee (1) kenvifire (1) kokke (1)
kun (1) liu bo (1) liwenlong05 (1) mckelvin (1)
mdl (1) meteorgan (1) miwasson (1) neal-zhu (1)
nirvanazc (1) phantom9999 (1) prudhvi (1) q66 (1)
theblop (1) tom (1) wangkang-xy (1) yuryur (1)
zhoutai (1) 伊藤洋也 (1)