Member's Skins

테마, 스킨, 위젯 등 아미나 회원자료실

홈 > 회원포럼 > 회원자료실
회원자료실

그누보드5(아미나)용 redis 쿼리 캐시 플러그인

9c93cdfe0feb8461272beb93bf2e40fe_1536718243_2294.png
9c93cdfe0feb8461272beb93bf2e40fe_1536718246_2822.png
 



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


 


,

17 Comments
11 달려라야옹 2018.12.17 06:12  
redis 섹션을 사용하면 phpmyadmin 접속이 불가한데..따로 수정해야하는곳이 있는가요?
5 나눗자료 2018.12.27 12:23  
remi repo로 설치한 php5.5 에 적용하였습니다.
감사합니다.

[root@zrbox ~]# yum install redis
[root@zrbox ~]# chkconfig redis on
[root@zrbox ~]# service redis start
Starting redis-server:                                    [  OK  ]
[root@zrbox ~]# redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> quit
[root@zrbox ~]# yum --enablerepo=remi,remi-php55 install php-pecl-redis

테스트: 새로고침시 value 숫자1씩 증가
<?php
$redis_host = "127.0.0.1";
$redis_port = 6379;
echo "<h1>redis 테스트<h1><br/>";
try {
    $redis = new Redis();
    $redis->connect($redis_host, $redis_port, 1000);
    $key = "mytest:first_key:incr_test"; //키분류는 :(콜론)을 찍는게 일반적
    $value = $redis->get($key);
    echo "value : ".$value."<br>";
    $redis->incr($key); //테스트를 위해 값증가
    $redis->expire($key, 3); //3초만 유지함.
} catch(Exception $e) {
    die($e->getMessage());
}
?>
  1. 별도 라이센스 표기가 없는 경우 다운받으신 자료는 비영리 사이트에서만 사용가능하며, 제작의뢰 또는 납품용으로도 사용할 수 없습니다.
  2. 또한 몰에서 판매하는 자료의 리소스로 활용 또는 단독판매가 불가능하고, 회원자료실에서 재배포도 불가능합니다.
  3. 포인트가 있는 경우 다운로드 후 2개월(60일) 동안은 다시 받더라도 재차감되지 않습니다.
제목
최근 글
최근 댓글
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand