커뮤니티

php-fpm 서버가 여럿인 경우는 답을 당연히 아실테고, 이 글은 1대의 php-fpm 서버일 때 유효합니다.

 

apcu 사용하면 php-cli <-> php-fpm 캐시가 공유 안 됩니다.

 

예를들면 php-cli 에서 글 수정하는 명령이 들어갔어도 유저한테 글 예전 내용이 보여질 수 있습니다.

 

그 외에도 캐시가 따로 노니까 php-cli 사용하는게 은근 스트레스 입니다.

 

rhymix core 에서도 이 점을 고려해서 php-cli 에서 curl 으로 php-fpm apcu 캐시를 지우는 코드를 얼핏 본거 같습니다만, 그래도 캐시 하나하나 http 으로 invalidate 하려면 노가다에 속합니다. ai 가 잘 정리해주긴 하지만요.

 

아주 쉬운 해결은 memcached 쓰면 됩니다.

 

이 글이 잘 이해가 되지 않는다면 캐시(apcu/memcached/redis)아무거나 쓰셔도 됩니다, php-cli 안 쓰기 때문입니다.

엘카 Lv. 4

댓글 2

  • 어느 정도 이상 규모가 있는 사이트라면 memcached가 확실히 더 안정적입니다.

    TCP 커넥션이 다소 부담되긴 하는데, 서버 1대라면 유닉스 소켓으로 접속하도록 설정하면 되고요.

     

    심지어 웹호스팅에서도 memcached를 부가서비스로 판매하는 곳이 있더군요.

    그런데 정작 그 업체의 웹호스팅 서버에는 memcached 확장이 설치되어 있지 않아서 연동이 안 되는;;;

  • apcu 캐시 사용시 php-cli 이용해 작업하다 보면 반드시 마주칠 문제인데 미리 팁 남겨 주셔서 감사합니다.

    중요한 내용이라고 생각들어서 저도 그렇고 나중에 이 팁을 찾는 분이 이해하기 쉽게 예제를 들어 설명을 만들었습니다.

     

    아래 pdf 파일은 본 팁에 대해서 gpt 5.5 선생님께 문의해본 결과 내용을 정리한것입니다.

     

    * 본문 팁 내용과 pdf 내용은 전체적으로 같습니다.

    * rhymix 에서 사용 되는 캐시 종류와 어떤식으로 사용하는게 좋은지에 대한 이유를 풀어서 설명

    * 게시물 삭제를 예제로 apcu 캐시와 php-cli 사용시 프로세스 흐름과 실제 어디서 어떤 문제가 생기는지 설명

     

    다운로드 : rhymix_apcu_cli_fpm_cache_summary_kr_v2.pdf