Ich erwäge, Memcached in Verbindung mit meiner PHP-App zu verwenden, um 5 Millionen Schlüssel / Wert-Paare zu speichern. Mein Ziel ist es, von der DB (in meinem Fall das Dateisystem) hin und her zu gehen. Ich kann 100-500 Zugriffe pro Sekunde auf die Schlüsselwerte haben. Die Schlüsselwerte sind beide MD5's und haben die Form:
%Vor% Ich bin nicht sicher, wie die Daten gespeichert werden, aber wenn wir 5 million * 16 bytes (keys) + 5 million * 16 bytes (values)
multiplizieren, erhalten wir ~ 180MB.
(BEARBEITEN: nach dem Versuch mit einer echten Memcached-Instanz verwende ich 750 MB, um alle Elemente zu speichern.)
Das Dataset ist fest, so dass ich nur davon lesen werde.
Fragen:
Vielen Dank!
Erhalten Sie die Leistung, die Sie brauchen? Bestimmt. Memcache ist blitzschnell. Wir speichern etwa 10 Millionen Schlüssel, und wir erreichen Memcache etwa 700 Mal pro Sekunde. Es hat uns nie im Stich gelassen.
Sie können alle Schlüssel in Memcache laden, wenn Sie die Anwendung starten und das Ablaufdatum auf eine sehr lange Zeit setzen. Die Sache, an die Sie sich erinnern sollten, ist, dass Memcache letztlich ein Cache ist. Und es sollte nicht als Speichermodul verwendet werden. Sie müssen es so konzipieren, dass Sie immer die Möglichkeit haben, die benötigten Daten (Schlüssel) nicht zu finden und in diesem Fall einen DB-Aufruf zu machen.
Die Alternative, die Sie eine NoSQL-Datenbank wie Cassandra betrachten können, hat ausgezeichnete Lese-und Schreibgeschwindigkeiten, die auf Ihre Bedürfnisse eingehen sollte. Die einzige Sache ist, dass es etwas schwierig ist, Cassandra im Vergleich zu Memcache fein abzustimmen.
Tags und Links memcached