개발 꿀팁/PHP

PHP의 session을 redis에 넣습니다

Jammie 2022. 8. 9. 12:37
반응형

첫째, 첫 번째 단계는 당연히 먼저 redis와 php를 설치했던 redis가 확장되었습니다. LNMP 원터치 패키지를 사용하면 자동으로 처리되므로 신경 쓸 필요가 없습니다.

요구 사항:

a. redis-cli 연결 가능.

b. phpinfo(;)에는 redis 확장 블록이 보인다.


2. 구성을 수정한다.

a. REDIS 설정

redis.conf 열기:

#vim /usr/local/redis/etc/redis.conf

1.찾았다:

 daemonize no

no를 yes로 수정하여 redis 서비스가 데몬 모드로 실행되도록 한다

 daemonize yes

2.찾았다:

    #requirepass foobared

번호 #를 삭제하고 foobared를 자신의 비밀번호로 변경:

requirepass  myPassword

완료되면 redis를 다시 시작합니다

service redis restart

b. PHP 설정
열리다php.ini:

#vim /usr/local/php/etc/php.ini

찾기:

   ; session.save_handler = files
            ;session.save_path = "/tmp"

변경:

   session.save_handler = redis          
            session.save_path = "tcp://127.0.0.1:6379?auth=myPassword"

완료되면 php-fpm을 재시작합니다

service php-fpm restart

3. 테스트를 완료한다.

다음과 같이 실행한다.코드:

    <?php
        session_start();
        $_SESSION['data']    =    array(
                                        'ID'        =>    894365,
                                        'USER'      =>    'slayer.hover',
                                  );

redis-cli 열기:

# /usr/local/redis/bin/redis-cli -a myPassword

PHP의 임시 키가 보일 겁니다

127.0.0.1:6379> dbsize
(integer) 1
127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:8u96v687f5fns0kean700kdk60"
127.0.0.1:6379> ttl PHPREDIS_SESSION:8u96v687f5fns0kean700kdk60
(integer) 1285
127.0.0.1:6379> get PHPREDIS_SESSION:8u96v687f5fns0kean700kdk60
"data|a:2:{s:2:\"ID\";i:894365;s:4:\"USER\";s:12:\"slayer.hover\";}"
반응형