WordPress Redis object cache 적용기

 

WordPress Redis object cache 적용기

워드프레스는 플러그인이 많아지거나, 스킨이 무거울 경우 속도가 많이 느려지는 경우가 있습니다. 제 블로그의 스킨도 무거운 편이고, 플러그인도 제법 많아 로딩 속도를 개선하기 위해서 Redis Object Cache를 적용해 보았습니다.

 

Redis 5.0.7 소스 설치 및 실행

wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar zxvf redis-5.0.7.tar.gz

cd redis-5.0.7

make

redis.conf 수정

redis가 host node의 메모리를 마구 가져다 쓰면 안되기 때문에 Max memory 값을 제한해 둡니다.

vi redis.conf

maxmemory  256mb
maxmemory-policy  allkeys-lfu

호스트 노드의 메모리 여유분에 따라 max값을 조정해야 합니다.

redis 구동

src/redis-server &

레디스는 백그라운드 명령없이 구동하면 세션을 지속적으로 물고 있고, 세션이 끊어지면 redis 서버가 종료됩니다. &을 붙여 백그라운드 실행을 해줍니다.

 

php에 redis 모듈 연동

기존에 php7.3을 소스 설치하여 사용중이기 때문에 yum 으로 php-redis-perl 패키지 추가가 아닌 수동으로 컴파일 하였습니다.

wget https://github.com/nicolasff/phpredis/zipball/master -O phpredis.zip
unzip phpredis.zip
cd phpredis-phpredis-c3ca003/

$PHP_HOME/php/bin/phpize
./configure --with-php-config=<$PHP_HOME>/bin/php-config
make && make install

$PHP_HOME은 php가 소스 설치되어 있는 경로 입니다. $PHP_HOME은 그대로 사용하면 안되고 본인의 php 설치 경로를 지정해야 합니다.

phpize를 먼저 실행 후 컴파일 해줍니다.

php/bin의 경로가 기본 경로가 아니기 때문에   –with-php-config 옵션을 추가 해주었습니다.

그리고 php.ini에 아래 내용을 추가 해줍니다.

vi php.ini

[redis]
extension=$PHP_HOME/lib/php/extensions/no-debug-non-zts-20180731/redis.so
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

php를 재구동하기 전에 워드프레스 설정파일인  wp-config.php에 아래와 같은 내용을 추가 해줍니다.

define( 'WP_CACHE_KEY_SALT', 'rastalion.me' );
define( 'WP_CACHE', true );

rastalion.me 부분에는 적용 할 블로그의 도메인을 추가 하시면 됩니다.

그리고 php-fpm 재구동

systemctl restart php-fpm

 

플러그인 설치

워드프레스 플러그인에 Redis object cache를 검색해보면 바로 나옵니다. 설치 후 활성화하고 Setting을 눌러 enable 버튼을 누르면

Connected 상태로 나오는 것을 보니 정상적으로 캐시 적용이 되었습니다.

페이지 로딩 속도의 체감이 조금은 빨라진듯 한 기분(?)이네요.

 

 

You may also like...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다