<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">apcu_dec</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$step</span></span><span> = </span><span><span class="hljs-number">1</span></span><span> )
</span></span>
: Der Cache -Taste gibt an, dass das Cache -Element reduziert werden soll.
$ STEP : Der Wert der Abnahme, standardmäßig 1 . Sie können eine Ganzzahl von mehr als 0 angeben, um den numerischen Wert im Cache zu verringern.
Die Funktion besteht darin, den Wert des angegebenen Schlüssels von der angegebenen Schrittgröße zu subtrahieren. Wenn der Schlüssel nicht existiert oder der Wert im Cache nicht in eine Ganzzahl konvertiert werden kann, gibt die Funktion falsch zurück.
Die grundlegendste Verwendung besteht darin, einen bestimmten Wert vom angegebenen Schlüssel im Cache zu subtrahieren:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Setzen Sie einen Anfangswert</span></span><span>
</span><span><span class="hljs-title function_ invoke__">apcu_store</span></span><span>(</span><span><span class="hljs-string">'counter'</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>);
</span><span><span class="hljs-comment">// Reduzieren Sie diesen Wert</span></span><span>
</span><span><span class="hljs-title function_ invoke__">apcu_dec</span></span><span>(</span><span><span class="hljs-string">'counter'</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-comment">// Erhalten Sie aktualisierte Werte</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">apcu_fetch</span></span><span>(</span><span><span class="hljs-string">'counter'</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe 8</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>In diesem Beispiel wird zunächst ein Wert von 10 mit dem Schlüssel zu Counter über APCU_Store gespeichert, dann wird der Wert von 2 über apcu_dec abtrahiert, und schließlich wird der aktualisierte Wert von 8 über apcu_fetch erhalten.
Wenn keine Schrittgröße angegeben ist, subtrahiert APCU_DEC den Wert standardmäßig um 1:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Setzen Sie einen Anfangswert</span></span><span>
</span><span><span class="hljs-title function_ invoke__">apcu_store</span></span><span>(</span><span><span class="hljs-string">'counter'</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>);
</span><span><span class="hljs-comment">// Standardschrittgröße Reduktion</span></span><span>
</span><span><span class="hljs-title function_ invoke__">apcu_dec</span></span><span>(</span><span><span class="hljs-string">'counter'</span></span><span>);
</span><span><span class="hljs-comment">// Erhalten Sie aktualisierte Werte</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">apcu_fetch</span></span><span>(</span><span><span class="hljs-string">'counter'</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe 9</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>In diesem Beispiel reduziert APCU_DEC ('Zähler') den Zählerwert um 1, was zu 9 führt.
Wenn apcu_dec versucht, einen Cache -Taste zu reduzieren, der nicht existiert, gibt die Funktion falsch zurück. Zum Beispiel:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Versuchen Sie, einen nicht existierenden Schlüssel zu reduzieren</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">apcu_dec</span></span><span>(</span><span><span class="hljs-string">'nonexistent_key'</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-comment">// Ausgabe返回值</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe bool(false)</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Dies zeigt an, dass APCU_DEC , wenn sich der Schlüssel nicht im Cache befindet, kein neues Schlüsselwertepaar erstellt, er nur mit vorhandenen Tasten arbeiten kann.
Wenn der Wert im Cache keine Ganzzahl ist, gibt APCU_DEC auch False zurück. Dies bedeutet, dass die Funktion sie nicht als Zahl reduzieren kann, wenn der zwischengespeicherte Wert ein String oder einen anderen Typ ist.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Setzen Sie einen nicht numerischen Wert</span></span><span>
</span><span><span class="hljs-title function_ invoke__">apcu_store</span></span><span>(</span><span><span class="hljs-string">'message'</span></span><span>, </span><span><span class="hljs-string">'Hello, World!'</span></span><span>);
</span><span><span class="hljs-comment">// Versuchen Sie zu reduzieren</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">apcu_dec</span></span><span>(</span><span><span class="hljs-string">'message'</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-comment">// Ausgabe返回值</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe bool(false)</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>In diesem Fall gibt APCU_DEC false zurück, da der Wert im Cache keine Zahl ist.
Die Funktion apcu_dec wird normalerweise in Szenarien verwendet, in denen die Werte im Cache dynamisch aktualisiert werden müssen. Zum Beispiel:
ZEIT : APCU_DEC kann die Zahlen im Cache sehr effizient reduzieren, wenn der Wert eines bestimmten Zählers aufzeichnet und Sie die Anzahl in mehreren Anforderungen reduzieren möchten.
Aktueller Grenzmechanismus : In einigen aktuellen limitierenden Szenarien kann APCU_DEC verwendet werden, um die verbleibende Anzahl von Anforderungen zu reduzieren. Beispielsweise ermöglicht eine API -Schnittstelle 100 Anrufe pro Tag, und Sie können APCU_DEC verwenden, um die verbleibende Häufigkeit zu reduzieren.
Persistenz des APCU -Cache : APCU -Cache ist Daten im Speicher und wird nach dem Wiederherstellen von PHP nicht beibehalten. Daher gehen die Daten der APCU_DEC -Operation verloren. Wenn Sie die Speicherung von Daten bestehen müssen, müssen Sie andere Speicherlösungen wie Datenbanken berücksichtigen.
Gleichzeitiger Zugriff : APCU ist ein Cache, der von einem einzelnen Prozess geteilt wird. Wenn Ihre Anwendung zwischen mehreren Prozessen oder Servern ausgeführt wird, sollten Sie anstelle von APCU andere verteilte Cache -Schemata (z. B. Redis oder Memcached) verwenden.
Leistungsüberlegungen : APCU ist ein effizienter Speicher-Cache, aber übergeordnetes Abhängigkeit von Speichercache kann zu Leistungs Engpässen führen. Daher ist es sehr wichtig, Cache vernünftigerweise zu verwenden, um übermäßige oder unnötige Caches von zwischengespeicherten Daten zu vermeiden.
APCU_DEC ist eine sehr praktische Funktion in der APCU -Erweiterung, mit der Entwickler die Werte im Cache reduzieren können. Es verfügt über eine breite Palette von Anwendungen in Zählern, aktuellen Begrenzung und anderen Szenarien. Das Verständnis und Beherrschen der Nutzung dieser Funktion ist von großer Bedeutung für die Verbesserung der Leistung von PHP -Programmen und zur Verarbeitung zwischengespeicherter Dateneffizienz.