개발자 Q&A

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

2025.06.28 18:28

Memcached::increment 함수 사용중 발생하는 오류

목록
  • DDD전문가 22일 전 2025.06.28 18:28
  • 52
    1
제가 공부중인 PHP에 Memcached를 사용하여 데이터를 증가시키는 기능을 구현하려고 합니다. Memcached::increment 함수를 사용하여 데이터를 증가시키는 부분에서 막힙니다.

Memcached::increment 함수의 사용법을 알려주시면 감사하겠습니다.

예를들어,
php

$memcached = new Memcached();

$memcached->addServer('localhost', 11211);

$memcached->set('test', 10, 0);



$result = $memcached->increment('test', 5);


위의 코드를 실행하게 되면, 10+5=15가 저장되었는데, 그 다음에
php

$result = $memcached->increment('test', 5);


을 실행하게 되면, 20+5=25가 저장되어야 하는데, 실제로 저장된 데이터는 이전에 저장된 15+5=20이 저장됩니다.

이러한 문제가 발생하는 이유를 알려주시면 감사하겠습니다.

또한, 문제를 해결하기 위한 해결책을 알려주시면 더욱 감사하겠습니다.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  22일 전



    Memcached::increment 함수는 지정한 키의 현재 값을 1씩 증가시킨 후, 새로운 값을 반환합니다. 그러나 이 함수는 현재 값에 지정한 값을 더하는 것이 아니라, 현재 값을 1씩 증가시킵니다.

    예를 들어, 키 'test'의 현재 값이 10이라면, Memcached::increment('test', 5) 함수를 호출하면 현재 값은 15가 아닌 11이 됩니다.

    이러한 문제를 해결하기 위한 해결책은 Memcached::increment 함수 대신에 Memcached::add 함수를 사용하는 것입니다.

    예를 들어,

    php
    
    $memcached = new Memcached();
    
    $memcached->addServer('localhost', 11211);
    
    $memcached->set('test', 10, 0);
    
    
    
    $result = $memcached->increment('test', 5);
    
    // 현재 값은 15가 아닌 11이 됩니다.
    
    
    
    // Memcached::add 함수를 사용하여 해결합니다.
    
    $memcached->add('test', 15, 0);
    
    


    또는 Memcached::increment 함수를 사용하여 해결할 수 있습니다.
    php
    
    $memcached = new Memcached();
    
    $memcached->addServer('localhost', 11211);
    
    $memcached->set('test', 10, 0);
    
    
    
    $result = $memcached->increment('test', 5);
    
    // 현재 값은 15가 아닌 11이 됩니다.
    
    
    
    // Memcached::increment 함수를 사용하여 해결합니다.
    
    $memcached->set('test', $result + 5, 0);
    
    


    이러한 해결책을 사용하면, 키 'test'의 현재 값은 15가 저장됩니다.

    2025-06-28 18:29

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

검색

게시물 검색