Back to writing
미분류 1 min read HYEONG HWAN, MUN

php 세션 저장소를 redis 로 바꾸어 본 후기.

일반적으로 PHP 세션은 파일 형태로 다루어지고,

/var/lib/php/sessions/

위치에 serialize 되어 저장됩니다.

 

어떤 웹 프로그램의 속도가 느려서 디버깅을 했었는데, 느린 부분이 session_start() 구문이었다.

 

저 한 줄 실행하는데, 1.2초~ 2.5초가 걸리더라.

하나의 PHP 파일에 대하여, 동시에 20개의 POST 요청을 하는 프로그램이었다.

 

- 세션 구문이 느리니까 개선을 위하여 redis 를 설치해 보았다.

공식사이트는 이곳 (http://redis.io/download) 이다.

PHP 연동 파일은 http://redis.io/clients#php 에서 찾아볼 수 있다.

라엘이는 phpredis 를 선택해서 설치하였다.

설치방법은 사이트에 잘 나와있으니 따라하면 된다.

스크린샷 2015-06-16 오후 11.18.51

 

적용 직후 반응 속도가 대폭 개선되었다.

 


 

1. redis 서버 설치

# apt install redis

redis-server 가 설치된다.

 

2. 확인

# service redis status

 

3. PHP 의 session handler 로 사용하기 위해 PHP 모듈 설치

# apt-cache search redis | grep php

# apt install php-redis

 

4. session handler 를 redis 로 설정

https://github.com/phpredis/phpredis#installingconfiguring 을 보고 설정함

나는 php-fpm 에서 설정했다.

 

[code language="bash"]

php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://localhost:6379?weight=1"

[/code]

 

5. 실행중인 PHP 를 재시작

나는 php7.3-fpm 을 재시작했음. Apache 사용자라면 apache2 서비스를 재시작하면 된다.

 

6. 속도 확인!

 

Filed under