CI 묻고 답하기

제목 Codeigniter4 Redis session 오류
카테고리 CI 4 관련
글쓴이 현서 작성시각 2020/07/14 15:17:43
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 16852   RSS

안녕하세요.

기존에 2.0을 오래 전에 적용해서 사용하다가 드디어 4버전으로 신규 프로젝트를 진행하게 됐습니다.  그런데, 많은 부분이 바뀌었더군요. 

이참에 욕심을 좀 부려서 세션도 Redis를 사용하고자 하여 테스트 중에 특이사항이 발견되어 도움을 요청 드립니다. 

 

개발서버 내에 Redis와 nginx + php-fpm으로 구성하였습니다.

문제는 세션을 사용하는 컨트롤러에서 발생하게 됩니다. 계속 모래시계가 돌다가 결국 타임아웃이 떨어지는데 원인은 Redis에서 발생하는 것으로 보입니다. ($session = \Config\Services::session();)

 

redis-cli > monitor 결과 

첫 페이지 진입 시는 정상입니다. 

1594707220.204465 [0 127.0.0.1:57458] "SETEX" "ci_session:4hpnr0pqbusmo4oghrfueo92fa9oc8ta:lock" "300" "1594707220"

1594707220.204702 [0 127.0.0.1:57458] "GET" "ci_session:4hpnr0pqbusmo4oghrfueo92fa9oc8ta"

1594707220.212933 [0 127.0.0.1:57458] "EXPIRE" "ci_session:4hpnr0pqbusmo4oghrfueo92fa9oc8ta:lock" "300"

 

그런데, 새로고침할 경우에...

1594707327.288545 [0 127.0.0.1:57476] "TTL" "ci_session:4hpnr0pqbusmo4oghrfueo92fa9oc8ta:lock"

1594707328.288982 [0 127.0.0.1:57476] "TTL" "ci_session:4hpnr0pqbusmo4oghrfueo92fa9oc8ta:lock"

1594707329.289452 [0 127.0.0.1:57476] "TTL" "ci_session:4hpnr0pqbusmo4oghrfueo92fa9oc8ta:lock"

1594707330.289892 [0 127.0.0.1:57476] "TTL" "ci_session:4hpnr0pqbusmo4oghrfueo92fa9oc8ta:lock"

1594707331.298076 [0 127.0.0.1:57476] "TTL" "ci_session:4hpnr0pqbusmo4oghrfueo92fa9oc8ta:lock"

 

세션 관련된 설정은 

app.sessionDriver = 'CodeIgniter\Session\Handlers\RedisHandler'

app.sessionCookieName = 'ci_session'

app.sessionSavePath = 'tcp://localhost:6379'

app.sessionExpiration = 3600

app.sessionMatchIP = false

app.sessionTimeToUpdate = 300

app.sessionRegenerateDestroy = false

 

Redis는 실제 프로젝트로는 처음 사용이다 보니 어려움이 좀 있네요. ^^ 

그럼, 경험하신 분들의 조언 부탁 드립니다. 

 

 

 다음글 이미지처리클래스 quality 질문있습니다. (2)
 이전글 아애 안보인다는 _output function 입니다. (2)

댓글

한대승(불의회상) / 2020/07/14 16:42:42 / 추천 0

Redis 세션 락이 발생하는것 같군요.

세션 관련 유용한 글이 있어 링크 걸어둡니다.

https://jennifersoft.com/ko/blog/tech/2019-03-21/

현서 / 2020/07/14 17:54:17 / 추천 0

.env 설정을 빼고 app.php 파일에 설정을 변경하니 해결이 되었습니다. 

웁스.... 관심 주신 대승님 감사드립니다. ^^