php 세션 저장소를 redis 로 바꾸어 본 후기.
2018.05.05 22:13
php 세션 저장소를 redis 로 바꾸어 본 후기.
어떤 웹 프로그램의 속도가 느려서 디버깅을 했었는데, 느린 부분이 session_start() 구문이었다.
저 한 줄 실행하는데, 1.2초~ 2.5초가 걸리더라.
하나의 PHP 파일에 대하여, 동시에 20개의 POST 요청을 하는 프로그램이었다.
- 세션 구문이 느리니까 개선을 위하여 redis 를 설치해 보았다.
공식사이트는 이곳 (http://redis.io/download) 이다.
PHP 연동 파일은 http://redis.io/clients#php 에서 찾아볼 수 있다.
라엘이는 phpredis 를 선택해서 설치하였다.
설치방법은 사이트에 잘 나와있으니 따라하면 된다.
적용 직후 반응 속도가 대폭 개선되었다.
세션의 속도가 개선된 후에, 2번째로 시간을 오래 소비하는 요인을 찾았고 그것은 어떤 SQL 구문이었다.
해당 SQL 구문을 개선한 후에 만족할 만한 반응속도를 얻었다.
이상한 점은 그 후에 file session hander 로 바꾸어도 빠른 속도가 나오더라는 것이다.
최종적으로 redis session 과 file session 의 속도차이는 거의 나지 않았다.
- 반응속도가 만족스러워져서 redis 의 효율을 측정하고자 했는데 효율이 거의 없었음. (속도 개선이 있기는 함)
최종결론 : 느린 쿼리가 세션 생성(session_start) 시간에 영향을 미칠수도 있다는 것을 깨닳았고,
올바르게 작성된 쾌적한 PHP 환경에서 redis 세션으로 바꾼다고 해서 속도향상이 크게 일어나지는 않는 것을 알았음.
현재는 다시 file 세션으로 사용하고 있다.
다만 나중에, 다중 서버 환경에서 세션공유를 구현하려고 한다면 redis 를 사용할 것 같다.
[출처] https://blog.lael.be/post/1494
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.