<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Memcached</id>
	<title>Memcached - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Memcached"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Memcached&amp;action=history"/>
	<updated>2026-05-26T21:44:24Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Memcached&amp;diff=1659965&amp;oldid=prev</id>
		<title>imported&gt;VanGore: link dynamischen Websites</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Memcached&amp;diff=1659965&amp;oldid=prev"/>
		<updated>2025-06-20T08:33:04Z</updated>

		<summary type="html">&lt;p&gt;link dynamischen Websites&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
|Hersteller= &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
|AktuelleVersion= &amp;lt;!-- Nutze Version von Wikidata --&amp;gt;&lt;br /&gt;
|Betriebssystem= [[Unix-Derivat]]e, [[Microsoft Windows|Windows]]&lt;br /&gt;
|Kategorie= [[Cache]]-Server&lt;br /&gt;
|Lizenz= &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
|Deutsch= nein&lt;br /&gt;
|Website= &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Memcached&amp;#039;&amp;#039;&amp;#039; [{{IPA|ˈmɛm.kæʃ.tː}}] ist ein [[Cache]]-Server. [[Server (Software)|&amp;quot;Server&amp;quot; in der Bedeutung &amp;#039;&amp;#039;Soft&amp;#039;&amp;#039;-ware]] (die im &amp;#039;&amp;#039;selben&amp;#039;&amp;#039; Rechner laufen kann). Dieser Server dient zum Hinterlegen und Abholen von Daten aus dem Arbeitsspeicher. Die Software findet hauptsächlich Verwendung für [[Webseite#Dynamische Webseiten|dynamischen Websites]], die Daten aus [[Datenbank]]systemen zeitweise auf dem Server hinterlegen. Sie dient bei vielen dynamischen Websites mit Datenbankanbindung zur [[Rechenleistung|Leistungs]]-Verbesserung, indem durch die Vorhaltung von wichtigen Daten im Arbeitsspeicher Festplattenzugriffe vermieden werden beziehungsweise der Aufruf von aufwändigen und häufig verwendeten Datenbankabfragen –&amp;amp;nbsp;insbesondere [[SQL #Einfache Abfrage|SELECT]]-Anweisungen&amp;amp;nbsp;– minimiert wird. Dank Veröffentlichung unter der [[BSD-Lizenz]] (&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;erkeley &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;oftware &amp;#039;&amp;#039;&amp;#039;D&amp;#039;&amp;#039;&amp;#039;istribution) ist sie frei verwendbar.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Memcached wurde ursprünglich von der Firma [[Danga Interactive]] für das Internetportal &amp;#039;&amp;#039;[[LiveJournal]]&amp;#039;&amp;#039; entwickelt. Bis zum 15. Juni 2003 stand die Software unter der [[GNU General Public License|GPL]], als die Lizenzierung zur BSD-Lizenz geändert wurde. Mittlerweile ist der Einsatz der Software weit verbreitet und dient beispielsweise allein bei [[Facebook]] und der [[Wikipedia]] zur Bedienung von Milliarden von Nutzern im Monat.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
Die Verbindung zu einem solchen Server findet über die [[Kommunikationsprotokoll|Protokolle]] [[Transmission Control Protocol|TCP]] und [[Internet Protocol|IP]] statt. Daten werden mit einem eindeutigen [[Nummerung|Schlüsselwert]] versehen (vergleichbar mit dem Namen einer [[Variable (Programmierung)|Variablen]]) und als [[Zeichenkette]]n im Arbeitsspeicher abgelegt. Um das Abspeichern von [[Datentyp]]en wie [[Integer (Datentyp)|Ganz]]- oder [[Gleitkommazahl|Fließkommazahlen]] sowie [[Objekt (Programmierung)|Objekten]] zu ermöglichen, werden diese Daten durch die meisten [[Programmbibliothek]]en im Vorfeld [[Serialisierung|serialisiert]].&lt;br /&gt;
&lt;br /&gt;
Daten können entweder dauerhaft oder zeitweise abgespeichert werden. Für den letzteren Fall übernimmt memcached das Löschen automatisch.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== [[PHP]] ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Verbindung herstellen&lt;br /&gt;
$memcached = @memcache_connect(&amp;#039;localhost&amp;#039;, 11211)&lt;br /&gt;
             or die(&amp;#039;FEHLER! Die Verbindung zum Server ist fehlgeschlagen!&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
// Die Zeichenkette &amp;#039;Hallo&amp;#039; unter der Bezeichnung &amp;#039;wert1&amp;#039;&lt;br /&gt;
// für 1800 Sekunden abspeichern&lt;br /&gt;
$memcached-&amp;gt;add(&amp;#039;wert1&amp;#039;, &amp;#039;Hallo&amp;#039;, false, 1800);&lt;br /&gt;
&lt;br /&gt;
// Die Zeichenkette &amp;#039;Hallo, nochmal&amp;#039; unter der Bezeichnung &amp;#039;wert2&amp;#039;&lt;br /&gt;
// dauerhaft (Wert 0) in komprimierter Form abspeichern&lt;br /&gt;
$memcached-&amp;gt;add(&amp;#039;wert2&amp;#039;, &amp;#039;Hallo, nochmal&amp;#039;, MEMCACHE_COMPRESSED, 0);&lt;br /&gt;
&lt;br /&gt;
// &amp;#039;wert1&amp;#039; löschen&lt;br /&gt;
$memcached-&amp;gt;delete(&amp;#039;wert1&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
// &amp;#039;wert2&amp;#039; mit dem Ganzzahlenwert 5979 ersetzen und für 23979 Sekunden&lt;br /&gt;
// unkomprimiert abspeichern. Vorhandene Werte müssen mit replace() überschrieben&lt;br /&gt;
// werden. Eine Verwendung von add() würde in einem solchen Fall zu einem&lt;br /&gt;
// Fehler führen!&lt;br /&gt;
$memcached-&amp;gt;replace(&amp;#039;wert2&amp;#039;, 5979, false, 23979);&lt;br /&gt;
&lt;br /&gt;
// &amp;#039;wertObjekt&amp;#039; für 10 Sekunden mit dem Wert einer Instanz der PHP-Klasse&lt;br /&gt;
// stdClass anlegen&lt;br /&gt;
$memcached-&amp;gt;add(&amp;#039;wertObjekt&amp;#039;, new stdClass(), false, 10);&lt;br /&gt;
&lt;br /&gt;
// das gespeicherte Objekt von &amp;#039;wertObjekt&amp;#039; ausgeben&lt;br /&gt;
echo var_export($memcached-&amp;gt;get(&amp;#039;wertObjekt&amp;#039;), true);&lt;br /&gt;
&lt;br /&gt;
// sämtliche Statistiken, die der Server zur Verfügung stellt, ausgeben&lt;br /&gt;
var_dump($memcached-&amp;gt;getStats());&lt;br /&gt;
&lt;br /&gt;
// alle Werte löschen&lt;br /&gt;
$memcached-&amp;gt;flush();&lt;br /&gt;
&lt;br /&gt;
// Verbindung wieder schließen&lt;br /&gt;
$memcached-&amp;gt;close();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[Perl (Programmiersprache)|Perl]] ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
use Modern::Perl;&lt;br /&gt;
use Cache::Memcached::Fast;&lt;br /&gt;
&lt;br /&gt;
# neues memcached-Objekt erzeugen&lt;br /&gt;
#&lt;br /&gt;
my $cache = Cache::Memcached::Fast-&amp;gt;new({ servers =&amp;gt; [ &amp;#039;127.0.0.1:11211&amp;#039;, &amp;#039;192.168.50.55:11211&amp;#039; ] });&lt;br /&gt;
&lt;br /&gt;
# ein einfaches key/value Paar speichern&lt;br /&gt;
#&lt;br /&gt;
$cache-&amp;gt;set( &amp;#039;key&amp;#039;, &amp;#039;value&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
# komplexe Datenstrukturen speichern&lt;br /&gt;
#&lt;br /&gt;
$cache-&amp;gt;set( &amp;#039;key&amp;#039;, { name =&amp;gt; &amp;#039;John&amp;#039;, age =&amp;gt; 22 } );&lt;br /&gt;
&lt;br /&gt;
# gespeicherte Daten abfragen&lt;br /&gt;
#&lt;br /&gt;
my $data = $cache-&amp;gt;get( &amp;#039;key&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
# einen Datensatz löschen&lt;br /&gt;
#&lt;br /&gt;
$cache-&amp;gt;delete( &amp;#039;key&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
# alle Werte löschen&lt;br /&gt;
#&lt;br /&gt;
$cache-&amp;gt;flush_all;&lt;br /&gt;
&lt;br /&gt;
# Verbindung schließen&lt;br /&gt;
#&lt;br /&gt;
$cache-&amp;gt;disconnect_all;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[Java (Programmiersprache)|Java]] ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Liste für die Server erstellen&lt;br /&gt;
List&amp;lt;InetSocketAddress&amp;gt; memcachedServers = new ArrayList&amp;lt;InetSocketAddress&amp;gt;();&lt;br /&gt;
memcachedServers.add( new InetSocketAddress(&amp;quot;localhost&amp;quot;,11211) );&lt;br /&gt;
&lt;br /&gt;
// Verbindung herstellen&lt;br /&gt;
MemcachedClient memcachedClient = new MemcachedClient(memcachedServers);&lt;br /&gt;
&lt;br /&gt;
// Die Zeichenkette &amp;quot;Hallo&amp;quot; für eine Stunde (3600 Sekunden) unter der Bezeichnung &amp;quot;wert1&amp;quot; abspeichern&lt;br /&gt;
memcachedClient.add(&amp;quot;wert1&amp;quot;, 3600, &amp;quot;Hallo&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// &amp;quot;wert1&amp;quot; löschen&lt;br /&gt;
memcachedClient.delete(&amp;quot;wert1&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// alle Werte löschen&lt;br /&gt;
memcachedClient.flush()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Missbrauch als DDoS-Werkzeug ==&lt;br /&gt;
Aus dem öffentlichen Internet erreichbare memcached-Server können von Angreifern verwendet werden, um [[Denial of Service|Denial-of-Service]]-Angriffe zu verstärken. Da die Antwort auf eine memcached-Anfrage in der Regel bedeutend größer als die Anfrage ist, kann der Angreifer, wie bei einer [[DNS Amplification Attack]], die Menge der an das Angriffsziel geschickten Daten erhöhen. Diese Angriffstechnik wurde bei einer Attacke auf github.com Ende Februar 2018 genutzt, um die bis dahin höchste bei einem DDoS-Angriff beobachtete Datenrate zu erreichen.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.heise.de/security/meldung/Rekord-DDoS-Attacke-mit-1-35-Terabit-pro-Sekunde-gegen-Github-com-3985411.html |titel=Rekord-DDoS-Attacke mit 1,35 Terabit pro Sekunde gegen Github.com |werk=heise Security |sprache=de-DE |abruf=2018-03-05}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nur bei memcached-Servern, die hinter einer Firewall stehen, ist ein Missbrauch ausgeschlossen. Die Identifizierung der ungeschützten Server wird nach Experteneinschätzung noch mehrere Monate dauern.&amp;lt;ref&amp;gt;[http://www.spiegel.de/netzwelt/web/ddos-angriffe-immer-groesser-neue-angriffstechnik-ueber-memcached-server-a-1197067.html &amp;#039;&amp;#039;Diese DDoS-Attacken brechen alle Rekorde&amp;#039;&amp;#039;.] [[Spiegel Online]], 8. März 2018; abgerufen am 9. März 2018&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://memcached.org/ Offizielle Webpräsenz]&lt;br /&gt;
* {{Internetquelle&lt;br /&gt;
   |autor=Tim Schürmann&lt;br /&gt;
   |url=http://www.admin-magazin.de/Das-Heft/2009/02/Verteiltes-Caching-mit-memcached/(language)/ger-DE&lt;br /&gt;
   |titel=Verteiltes Caching mit memcached&lt;br /&gt;
   |werk=ADMIN-Magazin&lt;br /&gt;
   |abruf=2016-11-13}}&lt;br /&gt;
&lt;br /&gt;
=== Programmbibliotheken ===&lt;br /&gt;
* [http://www.codeplex.com/memcachedproviders ASP.NET]&lt;br /&gt;
* [http://docs.libmemcached.org/ C]&lt;br /&gt;
* [http://code.google.com/p/spymemcached/ Java]&lt;br /&gt;
* [http://search.cpan.org/dist/Cache-Memcached/ Perl]&lt;br /&gt;
* [http://php.net/memcached PHP]&lt;br /&gt;
* [http://pypi.python.org/pypi/python-memcached/ Python]&lt;br /&gt;
* [http://www.deveiate.org/projects/RMemCache/ Ruby]&lt;br /&gt;
* [https://github.com/bradfitz/gomemcache Go]&lt;br /&gt;
&lt;br /&gt;
=== Software, die memcached verwendet ===&lt;br /&gt;
* [[mw:Manual:Memcached|MediaWiki]]&lt;br /&gt;
* [https://launchpad.net/memcached-udfs Memcached Functions for MySQL] – [[MySQL]]-Schnittstelle&lt;br /&gt;
* [http://pgfoundry.org/projects/pgmemcache/ pgmemcached] – [[PostgreSQL]]-Schnittstelle&lt;br /&gt;
* [[Drupal]]&lt;br /&gt;
* [[Ruby on Rails]]&lt;br /&gt;
* [[Symfony]]&lt;br /&gt;
* [[CodeIgniter]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Speicherverwaltung]]&lt;br /&gt;
[[Kategorie:Freie Proxy-Software]]&lt;br /&gt;
[[Kategorie:Freies Datenbankmanagementsystem]]&lt;/div&gt;</summary>
		<author><name>imported&gt;VanGore</name></author>
	</entry>
</feed>