안녕하세요!

 

항상 귀동냥으로 많은걸 배우고 있는 mist입니다^^

 

다름이 아니라 자체적으로 랜딩페이지 모듈을 개발하고 있는데

 

모듈 관리자에서 사진을 올리고 저장을 하고 나서

 

게스트로 페이지에 접속한 사람이 A라고 했을 때 

 

A, B, C, D 등의 사람들이 동일 페이지에 접속하면 계속 DB에 들어가서 가져오는 것으로 알고 있습니다.

 

혹시 이걸 위젯 캐시처럼 1시간 간격으로 유지 또는 수정 전까지는 그대로 유지 이런 방법은 없을까요!?

 

>_< 잘부탁드립니다

 

  • profile

    Rhymix\Framework\Cache::set($키, $값, $유효기간);
    위 함수를 사용해 캐시에 값을 저장합니다.

    Rhymix\Framework\Cache::get($키);
    위 함수로 캐시값을 불러올수 있습니다. 캐시가 존재하는 경우 데이터를, 존재하지 않는 경우 false를 반환합니다.

    즉 캐시 get 함수로 데이터 존재여부를 체크후 존재한다면 가져온 데이터를 그대로 사용하고, 존재하지 않는다면 데이터를 가져와서 캐시에 값을 저장하면 되겠죠.

     

    키 값은 따로 규칙이 없으나 보통 중복 등을 방지하기 위해 모듈이름을 앞에 붙이는 편입니다.(모듈명:캐시이름)

    Rhymix\Framework\Cache::delete($키);
    참고로 유효기간 이전 캐시 강제 삭제시(DB에서 값이 변경되는 등) 위 함수를 사용하면 됩니다.

  • profile profile
    • mist
    • 질문기여자
    오오 감사합니다^^
    이렇게 간단한 방법이 있는 줄은 몰랐습니다.
    역시 고수 YJ소프트님 감사합니다!
  • profile profile

    한 가지 보완합니다. Cache::get()은 데이터가 존재하지 않는 경우 false가 아니라 null을 반환합니다.

    캐시 백엔드에 따라 실제로 false라는 값을 캐싱하기는 곤란할 수도 있지만, 0이나 빈 문자열, 빈 배열 등 false와 유사하게 취급하는 데이터를 캐싱하는 경우는 은근히 꽤 많기 때문에 그런 경우 혼란을 최소화하기 위해 진짜로 값이 없을 때는 그 의미에 가장 가까운 null을 반환하도록 바꾸었습니다. isset(), is_null(), === null 등으로 체크할 수 있습니다. 오래된 PHP 함수들처럼 실패시 false를 반환하면 자꾸 !$var로 체크하려는 유혹을 받게 되지요...