memcached - a distributed memory object caching system

Memcachedについて

memcachedは、高性能な分散型メモリオブジェクトキャッシュシステムで、汎用的な性質を持っていますが、元々はデータベースの負荷を軽減することで動的なWebアプリケーションを高速化するために使用されることを意図していました。

アプリケーションにとっての短期的な記憶装置と考えることができます。

機能

usage

memcachedを使用すると、システム内で必要な量よりも多くメモリがある部分からメモリを取得し、必要な量よりも少ない領域でアクセスできるようにすることができます。

memcachedは、メモリをより有効に活用することもできます。右の図を見ると、2つのデプロイメントシナリオがわかります。

  1. 各ノードは完全に独立しています(上)。
  2. 各ノードは他のノードからのメモリを使用できます(下)。

最初のシナリオは従来のデプロイメント戦略を示していますが、Webファームの実際の容量のごく一部である総キャッシュサイズという点で無駄が多いだけでなく、すべてのノード間でキャッシュの一貫性を維持するために必要な労力も無駄が多いことに気づくでしょう。

memcachedを使用すると、すべてのサーバーが同じ仮想メモリプールを見ていることがわかります。これは、特定のアイテムが常にWebクラスター全体の同じ場所に保存され、常にそこから取得されることを意味します。

また、アプリケーションの需要が増加してより多くのサーバーが必要になるにつれて、定期的にアクセスする必要があるデータの量も増えるのが一般的です。システムのこれらの2つの側面が一緒にスケールするデプロイメント戦略は、理にかなっています。

右の図は、簡略化のために2台のWebサーバーのみを示していますが、数が増えてもプロパティは変わりません。Webサーバーが50台ある場合、最初の例では使用可能なキャッシュサイズは64MBのままですが、2番目の例では3.2GBの使用可能なキャッシュが使用できます。

もちろん、Webサーバーのメモリをキャッシュに使用する必要はありません。多くのmemcachedユーザーは、memcachedサーバー専用に構築された専用のマシンを使用しています。

起源

Memcachedは、2003年にBrad Fitzpatrickによって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)