개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.22 18:05

Memcached::touchByKey 함수 사용에 대한 질문

목록
  • 버그헌터 1일 전 2025.06.22 18:05
  • 4
    1
제가 공부하던 중 Memcached::touchByKey 함수를 사용하려고 하는데, 아래와 같은 질문이 있습니다.

Memcached::touchByKey 함수는 키를 지정하여 메모리 캐시의 만료 시간을 갱신하는 함수입니다. 그러나 이 함수를 사용할 때, cache key가 존재하지 않을 경우 어떻게 되는지 궁금합니다.

키가 존재하지 않는 경우, 함수는 어떠한 예외를 발생시키는 것일까요? 또는 다른 결과를 반환하는 것일까요?

이러한 경우에 메모리 캐시의 만료 시간을 갱신하는 방법은 무엇일까요?

제가 이해한 바에 따르면, cache key가 존재하지 않을 경우에는 해당 키가 메모리 캐시에 존재하지 않다는 의미일 것입니다. 이 경우, 메모리 캐시의 만료 시간을 갱신할 수 없을 것입니다.

그러면, 이 경우에 어떻게 해야 하는지 알려주시겠습니까?

또한, 메모리 캐시의 만료 시간을 갱신하는 방법은 여러 가지가 있을 것 같습니다. 그 중에서 가장 효율적인 방법은 무엇일까요?

제가 공부하는 데 도움이 되었으면 좋겠습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    Memcached::touchByKey 함수는 cache key가 존재할 때만 메모리 캐시의 만료 시간을 갱신합니다. cache key가 존재하지 않을 경우, 함수는 아무런 예외도 발생시키지 않고 그냥 종료됩니다.

    cache key가 존재하지 않을 경우, 메모리 캐시의 만료 시간을 갱신하는 방법은 두 가지가 있습니다.

    1. cache key가 존재하지 않을 경우, cache key를 생성하여 메모리 캐시에 저장 : cache key가 존재하지 않을 경우, cache key를 생성하여 메모리 캐시에 저장한 후, Memcached::touchByKey 함수를 사용하여 메모리 캐시의 만료 시간을 갱신할 수 있습니다. 이 방법은 cache key가 존재하지 않을 경우, 새로운 cache key를 생성하여 메모리 캐시에 저장하는 방식입니다.
    2. cache key가 존재하지 않을 경우, 메모리 캐시의 만료 시간을 갱신하지 않음 : cache key가 존재하지 않을 경우, 메모리 캐시의 만료 시간을 갱신하지 않고 그냥 종료할 수 있습니다. 이 방법은 cache key가 존재하지 않을 경우, 메모리 캐시의 만료 시간을 갱신하지 않는 방식입니다.

    메모리 캐시의 만료 시간을 갱신하는 가장 효율적인 방법은 cache key가 존재할 때만 메모리 캐시의 만료 시간을 갱신하는 것입니다. cache key가 존재하지 않을 경우, 메모리 캐시의 만료 시간을 갱신하지 않으면, 메모리 캐시의 자원을 절약할 수 있습니다.

    예제로 설명하면 다음과 같습니다.

    #hostingforum.kr
    php
    
    $memcached = new Memcached();
    
    $memcached->addServer('localhost', 11211);
    
    
    
    // cache key가 존재하지 않을 경우, cache key를 생성하여 메모리 캐시에 저장
    
    $cacheKey = 'test_key';
    
    $memcached->set($cacheKey, 'test_value', 60); // 60초 동안 유효
    
    
    
    // cache key가 존재할 때만 메모리 캐시의 만료 시간을 갱신
    
    $memcached->touchByKey($cacheKey, 60); // 60초 동안 유효
    
    
    
    // cache key가 존재하지 않을 경우, 메모리 캐시의 만료 시간을 갱신하지 않음
    
    $memcached->touchByKey('non_existent_key', 60); // 아무런 예외도 발생하지 않음
    
    


    위 예제에서는 cache key가 존재하지 않을 경우, cache key를 생성하여 메모리 캐시에 저장하고, cache key가 존재할 때만 메모리 캐시의 만료 시간을 갱신하는 방법을 사용했습니다.

    2025-06-22 18:06

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 30,289건 / 8 페이지

검색

게시물 검색