Ohje, hab garnicht mitbekommen, dass hier noch was geschrieben wurde. Also dann:
rklm schrieb:
Es geht hierbei jedoch weniger noch um die Performance, als um das Zusammenspiel mit der Validisierung.
Was ist "Validisierung"?
Oh Wow, ich habe ein falsches Wort benutzt. Danke dass du mich darauf hinweist, sogar MIT Link zu Duden damit ich direkt sehe dass du recht hast! Ganz ehrlich, sowas lässt dich nicht sehr sympathisch erscheinen; aus meiner Sicht zumindest.
Es gibt mehrere Datenbanken, und je nach bestimmten Bedingungen werden beim "Beschreiben" des Caches manche Werte mehrfach überschrieben, bis letzendlich der "gültige" drin steht.
Dann ist es eher kein Cache. Du hast auch eingangs nicht erwähnt, dass Du Werte aus mehreren Datenbanken vorhalten willst.
Das war ja auch soweit nicht wichtig; Ich wollte ja nur eine Hilfestellung bei der Auswahl/Einrichtung eines Memcaches. Alles was danach kommt (Befüllen und Auslesen des Caches nach irgendeinem Schema, Auslesen des Caches nach irgendeinem Schema) wird selbst implementiert und spielt hier keine Rolle.
Solche Funktionalität wirst Du bei existierenden Produkten auch nicht unbedingt finden, denn die sind ja darauf ausgelegt, das zu tun, was ein Cache üblicherweise tut: nämlich einen Ausschnitt der Daten aus einem langsameren Speicher vorzuhalten.
S.o.: Ist mir klar, darum gehe ich ja auch davon aus das selbst zu implementieren, und frage hier nur nach einem Cache.
Kann da jetzt nicht weiter drauf eingehen, aber es macht in diesem Anwendungsfall definitiv Sinn, vereinfacht die Programmierstruktur drumrum, und wird letztlich auch Performance rausholen.
Dann können wir Dir auch nicht wirklich mit Antworten dienen, die zu Deiner Problemstellung passen.
Auch hier wieder: Die Probleme, wie der Cache gefüllt und gelesen wird, wurden hier bereits geklärt. Es geht/ging nur noch um einen brauchbaren Cache. Und nebenbei kann ich nunmal einfach nicht auf alle Einzelheiten eingehen, die sich hier in der Firma ergeben (würde sowieso den Rahmen sprengen).
noisefloor schrieb:
@snowblind: wenn ich das alles richtig verstehe, dann ist eher das bereits genannte Redis was für die. Ein sehr schnelles KV-Store, was ootb im RAM läuft, aber zusätzlich optionale Datenpersistenz bietet.
Vielen Dank für den Hinweis. S.o.: Ein "üblicher" Cache wie Memcache war vom Funktionsumfang durchaus ausreichend. Und da hier sowieso schon Memcache für (komplett) andere Projekte verwendet wird, war ein weiterer Memcache-Server gerade sozusagen aus dem Ärmel zu schütteln.
Zum Theme "Cache überhaupt sinnvoll": Auch bzgl. Performance lohnt es sich (bzw. wird sich lohnen) insofern, als dass später recht viele Clienten auf diesen Cache (gefüllt mit diversen redundanten, sich überlagernden Keys) zugreifen werden.
Mittlerweile hat das auch alles gut geklappt, die Clients in PHP, Python und Perl laufen; Das System, das einem Key den richtigen Value in abhängigkeit vom Client zuordnet, funktioniert; Usw. Ich danke für die Hilfe, ich hab genau das gefunden was ich gesucht hatte.