<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>
: 캐시 키는 캐시 항목이 줄어드는 것을 나타냅니다.
$ 단계 : 감소의 값, 기본값은 1 입니다. 캐시의 숫자 값을 줄이기 위해 0보다 큰 정수를 지정할 수 있습니다.
기능은 주어진 단계 크기에서 지정된 키의 값을 빼는 것입니다. 키가 존재하지 않거나 캐시의 값을 정수로 변환 할 수없는 경우 함수는 False를 반환합니다.
가장 기본적인 사용법은 캐시의 지정된 키에서 특정 값을 빼는 것입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 초기 값을 설정하십시오</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">// 이 값을 줄입니다</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">// 업데이트 된 값을 얻으십시오</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">// 산출 8</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이 예에서 먼저, 카운터 키가있는 10의 값은 apcu_store를 통해 저장된 다음 값을 2에서 APCU_DEC 까지 빼고, 최종적으로 업데이트 된 값은 apcu_fetch를 통해 얻습니다.
단계 크기가 지정되지 않으면 APCU_DEC은 기본적으로 값을 1로 빼게됩니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 초기 값을 설정하십시오</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">// 기본 단계 크기 감소</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">// 업데이트 된 값을 얻으십시오</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">// 산출 9</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이 예에서 APCU_DEC ( 'COUNTER')는 카운터 값을 1로 줄여서 9를 만듭니다.
APCU_DEC가 존재하지 않는 캐시 키를 줄이려면 함수가 False를 반환합니다. 예를 들어:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 존재하지 않는 키를 줄이십시오</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">// 산출返回值</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">// 산출 bool(false)</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이는 키가 캐시에 있지 않은 경우 APCU_DEC가 새로운 키 값 쌍을 생성하지 않으며 기존 키에서만 작동 할 수 있음을 나타냅니다.
캐시의 값이 정수가 아닌 경우 APCU_DEC 도 False를 반환합니다. 즉, 캐시 된 값이 문자열이거나 다른 유형 인 경우 함수가 숫자로 줄일 수 없습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 수치가 아닌 값을 설정하십시오</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">// 줄이려고 노력하십시오</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">// 산출返回值</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">// 산출 bool(false)</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이 경우 APCU_DEC는 캐시의 값이 숫자가 아니기 때문에 False를 반환합니다.
APCU_DEC 기능은 일반적으로 캐시의 값을 동적으로 업데이트 해야하는 시나리오에서 사용됩니다. 예를 들어:
카운터 : APCU_DEC는 특정 카운터의 값을 기록해야 할 때 캐시의 숫자를 매우 효율적으로 줄이고 여러 요청에서 카운트를 줄이려고합니다.
현재 제한 메커니즘 : 일부 현재 제한 시나리오에서 APCU_DEC를 사용하여 나머지 요청을 줄일 수 있습니다. 예를 들어 API 인터페이스를 사용하면 하루에 100 건의 호출이 가능하며 APCU_DEC를 사용하여 나머지 횟수를 줄일 수 있습니다.
APCU 캐시의 지속성 : APCU 캐시는 메모리의 데이터이며 PHP가 다시 시작된 후에는 유지되지 않습니다. 따라서 APCU_DEC 작업의 데이터가 손실됩니다. 데이터 저장을 유지 해야하는 경우 데이터베이스와 같은 다른 스토리지 솔루션을 고려해야합니다.
동시 액세스 : APCU는 단일 프로세스에서 공유하는 캐시입니다. 응용 프로그램이 여러 프로세스 나 서버간에 실행중인 경우 APCU 대신 다른 분산 캐시 체계 (예 : Redis 또는 Memcached)를 사용하는 것을 고려할 수 있습니다.
성능 고려 사항 : APCU는 효율적인 메모리 캐시이지만 메모리 캐시에 대한 과도한 관계는 성능 병목 현상으로 이어질 수 있습니다. 따라서 캐시 데이터의 과도하거나 불필요한 캐시를 피하기 위해 캐시를 합리적으로 사용하는 것이 매우 중요합니다.
APCU_DEC 는 APCU 확장에서 매우 실용적인 기능으로 개발자가 캐시의 값을 줄이는 데 도움이됩니다. 카운터, 현재 제한 및 기타 시나리오에 광범위한 응용 프로그램이 있습니다. 이 기능의 사용법을 이해하고 마스터하는 것은 PHP 프로그램의 성능을 향상시키고 캐시 된 데이터 효율성을 처리하는 데 큰 의미가 있습니다.