Database Reference
In-Depth Information
save 300 10
save 60 10000
Also findet ein Dump alle 900 Sekunden statt, wenn mindestens ein Dokument geändert
wurde, ebenso, wenn innerhalb von 300 Sekunden mindestens zehn Dokumente verändert
wurden oder alle 60 Sekunden, wenn sich 10.000 Datensätze geändert haben. Der Spei-
chervorgang schreibt ein neues Dumpfile, belässt das alte Dumpfile aber und benennt es
um. So können Snapshots von Datensätzen wieder zurück geholt werden. Diese Art der
Datenspeicherung zeigt aber auch, dass die Datensicherheit nicht zu 100 Prozent gegeben
ist. Wenn während eines Speichervorgangs der Redis-Server ausfällt, dann bleibt der letzte
Stand der Datei übrig, und alle Änderungen, die in der Zwischenzeit gemacht wurden, sind
verloren.
Replikation
Redis ermöglicht eine einfache 1:n Master-Slave-Replikation. Dabei findet die Replikation
für den Master asynchron statt, wo hingegen die Slaves während der Replikation keine An-
fragen annehmen. Die Struktur der Master-Slave Replikationen erlaubt auch Mischformen.
ein Slave kann wiederum mehrere andere Slaves haben. Die Einrichtung einer Master-
Slave-Replikation erfolgt in der Konfiguration des Slaves. Mit einem einfachen SLAVEOF
192.168.1.1 6379 teilen wir dem Slave mit, dass er die Daten vom Server 192.168.1.1 holen
soll. Dabei sendet der Slave ein SYNC-Kommando, woraufhin der Master im Hintergrund
die Daten sendet. Durch das Eintragen in der redis.conf des Slaves geschieht dies automa-
tisch. Zusätzlich können auf dem Server und Client Passwörter vereinbart werden.
Redis und PHP
Wir erinnern uns: Redis nutzt zur Kommunikation den TCP-Port 6379 mit einem einfachen
Textprotokoll. Dies macht die Anpassung an die verschiedenen Sprachen recht einfach. Ei-
ne kleine Auswahl für PHP gibt es unter [6]. Ich wähle Predis , eine in PHP geschriebene
Library für Redis. Einfach und recht intuitiv werden hier die meisten Redis-Befehle um-
gesetzt. Diese Library unterstützt die verschiedenen Redis-Versionen über Profile, und es
besteht die Möglichkeit, neue Befehle zu implementieren. Dies ist bei weitem nicht alles,
was predis zu bieten hat. In der Kürze, die ein Shortcut gebietet, verweise ich aber auf [7].
Einzige Voraussetzung ist die Verwendung von PHP 5.3. Predis muss in das Projektver-
zeichnis kopiert und per Autoload eingebunden werden.
Als kleines Beispiel für die Art und Weise, in der die Daten in Redis modelliert werden
können, nehmen wir eine simple Userverwaltung. Ein User hat die Eigenschaften name , id ,
passwort und alter . Wir wollen sicher gehen, dass ein Username nur einmal existiert. Im
klassischen SQL würde man zwei Tabellen benutzen:
Search WWH ::




Custom Search