Tanja: APC - shared cache

Beitrag lesen

Moin,

das sind keine guten Neuigkeiten, da ich auch andere Projekte mit dem APC nutze, wo m.E. Memcache, Redis etc. "übertrieben" wären, da ich gerade mal 1-15MB im RAM mit schnellem Zugriff brauche und mehr oder weniger als gemeinsamen Zwischenspeicher nutze.

Wenn du eine Lösung auch für die Zukunft haben willst, solltest du APC nicht mehr nehmen. APC wird ab PHP 5.5 nicht mehr existieren, denn das wichtigste Feature, der Opcode-Cache, wird jetzt von PHP direkt mitgeliefert, allerdings ist es der Zend Optimizer. Dieser hat allerdings keinen Userland-Cache.

Was genau hattest du dir denn da drunter vorgestellt?

Vereinfacht gesagt ginge es im aktuellen Script um Counter. Für jede Minute des Tages genau 1 Counter, maximal 24*60 INTEGER Werte, die spätestens am Folgetag überschrieben werden.

Die Anwendung sieht ein Quota vor, welches als "queries per sec" definiert ist und sich aus dem Durchschnitt der "queries per 1._ minute" anhand des Werts der vorherigen und bereits angebrochenen Minute ermitteln lässt.
Z.B. würde bei einer Ausführung zur Uhrzeit 23:59:30 mit 2 READs geprüft werden, ob das Quota bereits überschritten wurde: ($counters["23"]["58"]+$counters["23"]["59"])/90>max_queries_per_second; //90sec, da die queries von 23:58:00-23:58:59 und 23:59:00-23:59:30 berücksichtigt werden. Falls OK, wird die Query ausgeführt und es folgt ein WRITE/UPDATE: $counters["23"]["59"]++;

Das Locking macht mir hierbei keine Sorgen.
Fände es sehr übertrieben, wenn hierfür ein redis oder memcache aufgesetzt werden müsste. War APC nicht eigentlich auch für solche Fälle vorgesehen?

Gruß