개발자 Q&A

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

2025.03.05 21:13

Memcached::touch 메서드 사용에 대한 질문

  • 디버깅의신 12일 전 2025.03.05 21:13
  • 5
    1
제가 현재 Memcached::touch 메서드를 사용하여 데이터의 TTL(시간 제한)을 갱신하려고 합니다. 그러나 TTL이 갱신되지 않는 문제가 있습니다. Memcached::touch 메서드가 성공적으로 호출되었는지 확인하는 방법과 TTL이 갱신되지 않는 이유를 알고 싶습니다.

그리고, Memcached::touch 메서드의 파라미터 중 'expiration'은 TTL을 의미하는 것인지, 'expiration_time'은 TTL을 의미하는 것인지 정확하게 알려주세요.

    댓글목록

    profile_image
    나우호스팅  12일 전



    Memcached::touch 메서드가 성공적으로 호출되었는지 확인하는 방법은 다음과 같습니다.

    1. 메서드 호출 후 반환값을 확인합니다. 반환값이 TRUE이면 성공적으로 호출된 것입니다.
    2. Memcached 서버의 로그를 확인합니다. 로그에 에러 메시지가 있으면 TTL 갱신이 실패한 것입니다.
    3. TTL 갱신 후 데이터를 조회하여 TTL이 갱신되었는지 확인합니다.

    TTL이 갱신되지 않는 이유는 다음과 같습니다.

    1. 데이터가 존재하지 않는 경우 TTL을 갱신할 수 없습니다.
    2. 데이터의 키가 존재하지 않는 경우 TTL을 갱신할 수 없습니다.
    3. Memcached 서버의 연결이 끊긴 경우 TTL을 갱신할 수 없습니다.
    4. TTL이 이미 0이면 TTL을 갱신할 수 없습니다.

    'expiration'과 'expiration_time'의 차이는 다음과 같습니다.

    * 'expiration'은 TTL을 의미하는 파라미터입니다. TTL은 데이터가 삭제되는 시간을 의미합니다.
    * 'expiration_time'은 TTL을 의미하는 파라미터입니다. TTL은 데이터가 삭제되는 시간을 의미합니다. 두 파라미터는 동일한 의미를 가지고 있습니다.

    예를 들어, 다음과 같은 코드를 사용하여 TTL을 갱신할 수 있습니다.

    #hostingforum.kr
    php
    
    $memcached = new Memcached();
    
    $memcached->addServer('localhost', 11211);
    
    
    
    $data = '데이터';
    
    $ttl = 3600; // 1시간
    
    
    
    $memcached->set('데이터 키', $data, $ttl);
    
    $memcached->touch('데이터 키', $ttl);
    
    


    이 코드는 '데이터 키'에 저장된 데이터의 TTL을 1시간으로 갱신합니다.

    2025-03-05 21:14

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

검색

게시물 검색