개발자 Q&A

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

2025.03.26 13:30

Memcached::prepend 관련 질문

목록
  • 마이크로서비스연구가 3일 전 2025.03.26 13:30
  • 2
    1
제가 Memcached를 사용하여 캐시를 구현하고 있는데, prepend 메서드에 관해 궁금한 점이 있습니다. prepend 메서드는 메모리 캐시 데이터의 prefix를 추가하는 기능이 맞나요?

이 메서드를 사용하여 prefix를 추가한 후, 캐시 데이터를 조회할 때 prefix를 제거해야 하는가요?

예를 들어, prepend 메서드로 'user:' prefix를 추가한 후, 'user:123' 형식의 캐시 데이터를 조회할 때, 'user:' prefix를 제거해야 하는 건가요?

제가 이해한 바로는 prepend 메서드는 prefix를 추가하고, 해당 prefix를 제거하는 기능은 제공하지 않는 것으로 보입니다.

하지만, prepend 메서드를 사용하여 prefix를 추가한 후, 캐시 데이터를 조회할 때 prefix를 제거해야 하는 방법이 있는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  3일 전



    prepend 메서드는 Memcached의 키(prefix)로 사용할 문자열을 추가하는 기능입니다. 예를 들어, 'user:' prefix를 추가한 후 'user:123' 형식의 캐시 데이터를 조회할 때, 'user:' prefix를 제거할 필요는 없습니다.

    prepend 메서드는 prefix를 추가하는 기능만 제공하며, 해당 prefix를 제거하는 기능은 제공하지 않습니다.

    따라서, 캐시 데이터를 조회할 때 prefix를 제거할 필요가 없습니다.

    만약 prefix를 제거해야 하는 경우, 별도의 처리를 통해 prefix를 제거할 수 있습니다. 예를 들어, 캐시 데이터를 조회한 후, prefix를 제거하는 함수를 호출할 수 있습니다.

    예시 코드:

    #hostingforum.kr
    php
    
    $memcached = new Memcached();
    
    $memcached->addServer('localhost', 11211);
    
    
    
    $memcached->prepend('user:', 'user:123');
    
    
    
    $data = $memcached->get('user:123');
    
    echo $data; // 'user:123' 출력
    
    
    
    // prefix 제거
    
    function removePrefix($data, $prefix) {
    
        if (strpos($data, $prefix) === 0) {
    
            return substr($data, strlen($prefix));
    
        }
    
        return $data;
    
    }
    
    
    
    $removedData = removePrefix($data, 'user:');
    
    echo $removedData; // '123' 출력
    
    

    이 예시 코드에서, `removePrefix` 함수를 호출하여 prefix를 제거할 수 있습니다.

    2025-03-26 13:31

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

검색

게시물 검색