본문 바로가기
관심분야

마젠토(Magento)2.4.x에서 성능향상을 위한 Redis 캐시 설정하기

by beresford 2023. 3. 10.

레디스(Redis) 캐시는 자주 액세스하는 데이터를 메모리에 저장하여 데이터 검색속도를 빠르게 하고 DB의 쿼리의 필요성을 줄여 주기 때문에  애플리케이션의 성능을 향상하는 강력한 Tool로 알려져 있습니다.  마젠토 2.4.5에서  Session,  Page Cache, Backend을 Redis 캐시로 구성하는 방법에 대해서 알아보겠습니다.

1. 사전 준비

  • 서버에 Redis가 사전에 설치되어 있어야 한다.
    $ sudo apt install redis-server   ; Ubuntu(Debian)
    $ redis-cli ping   ; redis가 정상설치되어 있으면 'PONG'을 출력한다.
       PONG
  • 서버에 설치된 PHP version에 맞는 Redis Extension이 설치되어 있어야 한다.
    $ php -m | grep redis   ; PHP의 Redis extension이 설치되어 있으면 redis가 표시된다.
       redis
  • env.php파일을 백업해 둔다. Redis명령을 수행하면 그 결과는 env.php파일을 업데이트하기 때문에 혹시 모를 장애에 대응하기 위해서 파일을 백업해 두기를 권고한다.

2. 마젠토에서 Redis구성하기

마젠토에서 Redis cache를 설정하는 방법은 2가지가 있다. app/etc디렉터리의 env.php를 직접 수정하는 방법과 CLI(Command Line Interface)에서 커맨드를 입력하는 방법이 있다. 필자가 해 본 경험으로는 에러를 줄이는 방법으로 커맨드를 직접 입력하는 방법을 사용하기를 권고하며 커맨드를 사용해서 파라미터를 수정하는 방식으로 진행했다.

1) 커맨드 사용

마젠토 2.4.x에서는 backend캐시, Page캐시, Session Redis 캐시 구성할 있다.  명령어 형식은
php bin/magento setup:config:set --[cache type]=redis이고 [cache type] cache-backend, page-cache or session-save 대체하여 사용할 있다. 또한 파라미터를 입력을 하는 형식은
php bin/magento setup:config:set --[cache type]=redis  [cache type]-redis-[parameter name]=[parameter value]으로

setup:config:set 줄여서 s:c:s 사용할 있다. db는 구분을 위해 0부터 숫자를 임의로 부여할 수 있다. 나머지는 디폴트 값을 그대로 사용하기로 하고 아래와 같이 명령어를 구성해서 실행했다.

$ php bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-db=0
$ php bin/magento setup:config:set --page-cache=redis --page-cache-redis-db=1
$ php bin/magento setup:config:set --session-save=redis --session-save-redis-db=2

별도의 Redis서버를 구성하여 사용하지 않으면 디폴트 값을 사용해도 문제가 없고, 수정이 필요한 경우에는 명령이 실행된 후 env.php에서 직접 변경한다. 


다음은 Session을 Redis캐시로 실행하는 명령어이다.

명령어 실행
명령어 실행

2) env.php 확인

Redis캐시 구성을 위한 명령어를 실행하면 결과는 env.php에 적용되고, vi나 nano 등의 에디터를 사용하여 필요하다면 파라미터의 값을 변경한다.  또한 위의 명령어를 수행하지 않고 직접 env.php를 아래와 같이 수정할 수도 있다.

env.php파일
env.php파일

3. 결과 확인

$ redis-cli monitor 명령을 실행하면 설정된 Cache를 확인해 볼 수 있고 마젠토 2의 var/session이나 page_session디렉터리도 이제 비어 있는 것을 확인할 수 있다.

모니터링 화면
모니터링 화면

4. 맺음말

마젠토는 시스템의 성능 향상을 위한 노력이 필요하다.  시스템 성능향상을 위해서 레디스(Redis) 캐시를 고려하시는 분들에게 도움이 되기를 희망한다.   

댓글