Database Reference
In-Depth Information
Flüchtig betrachtet ist ein Key Value Store erst einmal nichts weiter als ein assoziatives Ar-
ray, bei dem der Key der Index des Arrayeintrags ist. Daher kann man sagen, dass auch die
PHP-eigenen assoziativen Arrays durchaus als Key Value Store funktionieren:
$autohaus["id:1"]="Meier"
$autohaus["id:2"]=array("name":"Müller","stadt":"Berlin")
echo "Autohaus 1: ".$autohaus["id:1"] -> Meier
echo "Autohaus 2 ist in
".$autohaus["id:2"]["stadt"] ->Berlin
Genau diesen Ansatz verfolgen alle Key-Value Stores. Daten werden gespeichert und an-
hand des Keys wieder abgerufen. Der Key in Redis ist binary-save , kann also jede Art
von Zeichen enthalten. Ein Key wie zeitschriften:2011:phpmagazin?ja ist ebenso gültig
wie 1234 und é ist Französisch . Als guter Stil hat sich eingebürgert, keine Leerzeichen
zu benutzen. Logische Einheiten sollten mit Doppelpunkt voneinander getrennt werden,
so wie user:12345:name oder user:properties . Ein Nachteil bei Redis ist das Fehlen einer
einfachen Möglichkeit, in Keys zu suchen. Es gibt zwar den KEYS-Befehl, mit dem an-
hand von Wildcards alle Keys angezeigt werden können (KEYS username:*:name würde
demnach alle Usernamen auflisten), aber während dieser Suche ist Redis blockiert (Redis
ist single-threaded), sodass weitere Anfragen nicht entgegengenommen werden können.
Was bei kleineren Datenmengen während der Entwicklungsphase noch praktisch ist, kann
bei großen Datenmengen in Produktivsystemen problematisch sein. Daher wird von dieser
Möglichkeit der Datensuche abgeraten.
Redis, so jung und schon so gut
Die Geschichte von Redis ist noch recht kurz: Salvatore Sanfilippo hatte mit LLOOGG ( ll-
oogg.com ) ein Echtzeit-Besucheranalysetool für Webseiten geschaffen. Um die Performan-
ce des unter MySQL laufenden Systems zu verbessern, wurde Redis als In-Memory Daten-
speicher in C entwickelt. Im Sommer 2009 hat Redis die bis dahin genutzte MySQL-Instal-
lation ersetzt. Durch Aufbau einer Community rund um Redis stieg die Popularität schnell,
und immer mehr Features wurden in den nächsten Monaten implementiert. Im März 2010
wurde Salvatore Sanfilippo von VMWare eingestellt, um Vollzeit an Redis arbeiten zu kön-
nen. Kurz danach folgte Ihm ein weiterer Hauptentwickler, Pieter Noordhuis, zu VMWare.
Redis kommuniziert über TCP in einem simplen Textformat, sodass die Entwicklung von
Clients in verschiedenen Sprachen relativ leicht ist. Einmal gestartet, lauscht Redis auf Port
6379 auf die Befehle. Die einfachste Kommunikation ist eine Telnet-Verbindung auf die-
Search WWH ::




Custom Search