그누보드5(영카트5)용 redis 쿼리 캐시 플러그인 > 그누보드5 플러그인

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

그누보드5(영카트5)용 redis 쿼리 캐시 플러그인 정보

그누보드5(영카트5)용 redis 쿼리 캐시 플러그인

첨부파일

redis_cache.zip (4.1K) 90회 다운로드 2017-11-10 17:04:48 포인트 차감1,000

본문

- redis 서비스를 이용하여 db 쿼리 캐시 플러그인입니다.

- 접속자가 많은 사이트나, 복잡한 쿼리를 많이 사용하는 사이트에서 성능을 향상시킬수 있는 솔루션입니다.

- 간단한 함수 사용만으로 사용할수 있습니다. 

 

1. 사전 내용

 - PHP 5.3 이상에서 테스트되었습니다. 5.2 이하 버전에선 오동작할수 있습니다.
 - 서버에 phpredis 가 설치되어 있어야 합니다. 
 - phpredis 설치방법은  http://blog.bongwork.com/archives/44 를 참조하세요.
 - common.php 파일에 redis 객체를 미리 생성하면, 접속시마다 생성하지 않음으로, 네트웍 리소스를 절약할수 있습니다.
   예제 
 try {
    $redis = new Redis();
    $redis->connect(REDIS_SERVER_IP, REDIS_SERVER_PORT, 5);
} catch( Exception $e) {
    echo $e->getMessage();
}

2. 디렉토리 구성 및 파일
 - /lib/RedisCache.class.php 메인 캐시용 클래스 
 - /extend/redis_cache_functions.php   쿼리 캐시 함수용 선언 함수파일
 - /redis_test.php  : 테스트용 php 파일
 - /README.txt

3. 설정방법
 - redis 서버가 로컬(127.0.0.1) 이 아닌 다른 서버에서 실행되는 경우 RedisCache.class.php 의 default_host와 default_port를 해당 서버정보로 변경해주세요.
 (보통 사용하지 않으나,  redis 서버의 auth 기능을 사용하고 있는 경우는 접속 코드에 auth 관련 코드를 추가해야 합니다.)

4. 사용방법
  - 압축을 푼 다음 RedisCache.class.php 와 redis_cache_functions.php 파일을 그누보드5(영카트5)의 lib와 extend 디렉토리로 업로드 합니다   - 첨부된 redis_test.php 를 작성하여 실행해봅니다. (관리자로 실행하면 디버깅 정보가 노출됩니다. 성능 확인가능)

5. 라이센스
  - GPL 을 따릅니다. 개인사이트 상업사이트에서 사용가능합니다.
  - 본인외에 타사이트에 위 소스를 게재할경우 사전 동의가 필요합니다.
  - 본 코드를 첨부한 솔루션을 판매하는 경우  따로 연락바랍니다.


 

추천
9

댓글 전체

다운받아서 redis 는 서버에 설치했고 정보도 확인했습니다만...
redis-test.php 실행시키면 흰색 화면만 나오는군요
다르게 쿼리 실행시켜봐도 흰색 화면... 뭐가 문제일지 ㅠ_ㅠ
관리자로 로그인후에 실행하셔도 동일한가요? 뭔가 오류 메세지가 나올것 같은데요..
혹시 common.php 의 session.save_path를 수정 하셨나요? 만약 redis 를 session.save_path 에서 사용 안하실거면, php.ini 에서 session 관련 설정은 빼셔야 합니다.
네 관리자로 로그인해도 아무런 메세지가 나오지를 않네요

session.save_path 부분 2줄은 제외하고 php.ini 에
extension=/usr/lip64/php/modules/redis.so 만 입력했습니다.
파일 경로는 맞습니다 ^^;

에러라도 뜨면 뭔가 확인이라도 해볼텐데 아무런 메세지 없는
빈페이지만 뜨네요 소스보기해도 아무것도 없고...
하얀색이 나왔다면, 오류가 났을것 같네요.
일단 코드를 조금 수정하여 오류를 확인해봐야 할것 같습니다.

/lib/RedisCache.class.php 에 해당 코드 부분에
echo $e->getMessage(); 코르를 추가해주세요.

try {
                $this->add_debug_info("[" . __METHOD__ . "()] redis 서비스에 접속합니다.");
               
                $redis = new Redis();
                $redis->connect($this->default_host, $this->default_port, 5);
                $this->data_store = $redis;
                $this->use_redis = true;
            } catch (Exception $e) {
                echo $e->getMessage();
                $this->use_redis = false;
                $this->add_debug_info("[" . __METHOD__ . "()] ".$e->getMessage(). " redis 서버에 접속할수 없습니다.");
            }
- common.php 파일에 redis 객체를 미리 생성하면, 접속시마다 생성하지 않음으로, 네트웍 리소스를 절약할수 있습니다.
  예제
 try {
    $redis = new Redis();
    $redis->connect(REDIS_SERVER_IP, REDIS_SERVER_PORT, 5);
} catch( Exception $e) {
    echo $e->getMessage();
}
이부분을 어디쯤 넣어야 할까요?
안녕하세요,

이걸 이용해서 그누보드 리스트와 댓글, 새글등 쿼리 돌만한 부분들 Hook걸어 만들고 있습니다. 글 수정과 삭제 부분만 잘 짜면 제가 생각하는 형태가 될 것 같은데 머리가 안돌아가네요..

정말 많은 도움이 되었습니다. 감사합니다.

명랑폐인님

redis를 이용해서 같은 DB를 사용하고 있고 그누를 아래와 같이 2개를 설치하고 로그인 세션공유도 할 수 있는 건가요?

1)도메인/ 에 그누설치

2)도메인/sub/ 에 그누설치

dbconfig.php에서 회원부분 공유를 해주면 각각은 로그인이 되는데, 서로 세션공유는 되지 않더라구요. 

( common.php에서 session_save_path를 같게 한다던지, data/session 폴더 심볼릭링크를 한다던지 등 방법을 사용했지만 세션공유는 되지 않더라구요. )

 

redis관련 세션공유 검색을 해도 비슷한 자료도 찾을 수가 없었습니다. 혹시 redis를 이용해서 그누 2개 설치시 로그인 세션공유를 할 수 있는 팁이라도 말씀해주시면 공부를 더 해보겠습니다.

전체 507
그누보드5 플러그인 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT