그누보드5, 영카트5, 아미나, 나리야에서 redis 쿼리 캐시 플러그인 설치하기

컨텐츠 정보

본문

위 링크에 있는 파일을 다운 받아야 쓸 수 있습니다.




1. redis 관련 패키지 설치하기


apt install redis-server


위 명령어로 레디스 서버를 설치합니다.


systemctl enable redis-server.service


위 명령어로 레디스 서버를 재부팅시에도 실행되게 합니다.


nano /etc/redis/redis.conf


위와 같이 레디스 설정에 들어갑니다.


maxmemory 256mb

maxmemory-policy allkeys-lru


위 2부분을 주석을 해제하고 수정을 해줍니다.



systemctl restart redis-server.service


위 명령어로 재실행 해줍니다.



apt install php-redis


위 명령어로 php와 연결해주는 패키지를 설치합니다.


php-7.4에서는 자동으로 붙네요.





2. php.ini 수정하기


/etc/php/7.4/fpm/php.ini


위 파일에서 1313번째 줄에 있는


session.save_handler = files



session.save_handler = redis


로 바꾸고




1342번째 줄에 있는


;session.save_path = "/var/lib/php/sessions"



session.save_path = "tcp://127.0.0.1:6379?weight=1"

로 바꾸면 됩니다.


그 후에 


service php7.4-fpm restart

재시작 해주면 적용 끝입니다.


https://blog.lael.be/post/1494 


라엘님 글을 참조하였습니다!





3. 테스트 해보기


redis-cli


위 명령어로 테스트해볼 수 있습니다.


127.0.0.1:6379> ping

PONG

127.0.0.1:6379>


위와 같이 ping 명령어를 넣으면 PONG이라고 답변이 오면 정상설치된 것입니다.




4. 적용하기


링크에서 받은 파일을 압축 해제 후 그누보드 루트에 덮어 씁니다.


그리고 그누 루트에 있는 redis_test.php 을 열어서


//이미 redis 객체를 만든경우에는 기존 객체를 사용합니다. 아래 주석을 해제후 디버깅 정보를 확인해보세요.

$redis = new Redis();

$redis->connect("127.0.0.1", 6379, 1000);


위와 같이 주석을 해제 후 저장합니다.



그누 루트의 common.php


대략 206번째 줄에 있는 그누보드 세션 저장 경로 부분을 수정


//session_save_path(G5_SESSION_PATH);


위와 같이 그누보드 세션 경로를 주석처리해주고


그 밑에


try {

    $redis = new Redis();

    $redis->connect("127.0.0.1", 6379, 5);

} catch( Exception $e) {

    echo $e->getMessage();

}


위와 같이 추가 해줍니다.



홈페이지에 관리자로 로그인 한 뒤에


웹브라우저에서 홈페이지/redis_test.php  열어보면


Array

(

    [0] => DEBUG 2020-05-17 19:00:18 [RedisCache::__construct()] 기존 redis 객체를 사용합니다.

    [1] => DEBUG 2020-05-17 19:00:18 [RedisCache::get_query_cache()] cache_exist = 1, ttl=4

    [2] => DEBUG 2020-05-17 19:00:18 [RedisCache::get_query_cache()] cache_key = sql_cache:dcedd8971ac62ffc806dc24c8c9c6985 HIT!!!

    [3] => DEBUG 2020-05-17 19:00:18 [RedisCache::get_query_cache()] exec_time =  0.001s

)


위와 같이 디버깅이 되는 것을 확인할 수 있습니다.


그리고 redis_test.php를 삭제합니다.




이제 세션을 redis 캐시를 사용함을 알 수 있습니다.




5. 옵션 : TCP port에서 Unix socket으로 변경


아미나의 Harry님 팁을 적용합니다. (유닉스 소켓이 더 낫다고 합니다.)


/lib/RedisCache.class.php


위 파일의 27번째 줄을 보면


$redis->connect($this->default_host, $this->default_port, 5);

위와 같은 내용이 있는데요.


$redis_socket = "/var/run/redis/redis.sock";

//$redis->connect($this->default_host, $this->default_port, 5);

$redis->connect($redis_socket); // Use Unix socket instead of TCP port

위와 같이 해당부분을 주석처리하고 위 아래에 유닉스 소켓으로 변경하시면 됩니다.

관련자료

댓글 15개 / 2페이지

우성군님의 댓글의 댓글

그러게요 ㅜ ㅜ 디스커스가 좀 문제가 있네요.

전 로딩타임 때문에 그냥 자체 댓글로 가려구요 ㅜ ㅜ
Total 157 / 4 Page
RSS
클라우드플레어에 인증기관 허가(CAA, Certificate Authority Authorization) 설…

1. CAA는 무엇인가요?CAA는 사이트 소유자가 도메인 이름을 포함한 인증서를 발급할 수 있는 CA (인증 기관)를 지정할 수 있도록 하는 D…

acme.sh를 이용한 ECDSA Wildcard SSL 인증서 발급받는 방법

0. 들어가며certbot을 이용하면 RSA기반 와일드카드 SSL 인증서는 쉽게 발급하고, 갱신이 됩니다.그런데 ECDSA기반 와일드카드 SSL…

Nginx, Apache에 차대세 압축 이미지 webp 적용하는 방법(cwebp,gif2webp) 댓글 6

webp는 애플 기기 및 IE를 제외하곤 대부분의 범용 브라우저에서 지원하고 있습니다.2020년 8월 현재 애플 기기도 추후 업데이트 지원하겠네…

그누보드5, 아미나, 미소 베이직에서 전영역에 lazyload 적용하기

사용자가 보지 않은 영역의 이미지들을 로드하지 않고,스크롤을 해야 이미지가 로드(다운로드)가 되는 방법입니다.국내 사이트에는 많이 적용되어 있지…

그누보드5, 영카트5, 아미나, 나리야에서 redis 쿼리 캐시 플러그인 설치하기 댓글 15

위 링크에 있는 파일을 다운 받아야 쓸 수 있습니다.1. redis 관련 패키지 설치하기apt install redis-server위 명령어로 …

최근글


새댓글