memcached - a distributed memory object caching system

关于 Memcached

memcached 是一种高性能、分布式内存对象缓存系统,本质上是通用的,但最初旨在通过减轻数据库负载来加速动态 Web 应用程序。

您可以将其视为应用程序的短期记忆.

它能做什么

usage

memcached 允许您从系统中超出您需要的部分获取内存,并使其可供您拥有少于您需要的区域访问.

memcached 还允许您更好地利用内存。如果您考虑右图,您可以看到两种部署方案:

  1. 每个节点都是完全独立的(上面).
  2. 每个节点都可以使用其他节点的内存(下面).

第一种情况说明了经典的部署策略,然而你会发现这既是一种浪费,因为总的缓存大小只是你的web农场实际容量的一小部分,而且还需要花费大量的精力来保持所有这些节点上的缓存一致.

使用 memcached,您可以看到所有服务器都在查找相同的虚拟内存池。这意味着给定项目始终存储并始终从整个 Web 集群中的同一位置检索.

此外,随着对应用程序的需求增长到需要更多服务器的程度,通常在必须定期访问的数据方面也会增长。系统的这两个方面一起扩展的部署策略才有意义.

为简单起见,右图仅显示了两个 Web 服务器,但随着数量的增加,属性保持不变。如果您有 50 个 Web 服务器,在第一个示例中您的可用缓存大小仍为 64MB,但在第二个示例中,您将有 3.2GB 的可用缓存.

当然,您不需要将 Web 服务器的内存用于缓存。许多 memcached 用户拥有专为 memcached 服务器而构建的专用机器.

起源

Memcached 最初是由 Brad Fitzpatrick 于 2003 年为LiveJournal开发的.

贡献者

dormando (886) Dustin Sallings (214) Brad Fitzpatrick (164) Trond Norbye (130)
Paul Lindner (58) Toru Maesaka (34) Steven Grimm (25) David Carlier (22)
Kevin Lin (17) Stanisław Pitucha (16) Anatoly Vorobey (15) Brian Aker (15)
Steve Yen (15) Tomash Brechko (12) minkikim89 (12) Tharanga Gamaethige (9)
Tomas Korbar (7) hachi (7) Aaron Stone (6) Dan McGee (6)
Fei Hu (6) Guillaume Delacour (6) Kanak Kshetri (6) Ola Jeppsson (6)
Steve Wills (6) Daniel Schemmel (5) Evan Martin (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)
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)
Fabrice Fontaine (3) Jay Grizzard (3) Paul Furtado (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) Qu Chen (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) 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) 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) 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) 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) 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)