본문 바로가기
PHP

[PHP] redis 설치, 세션 클러스터링 설정

by 코타 2022. 2. 12.

redis는 주로 두 가지 용도로 사용한다.

1. 데이터 캐시

2. 세션 저장소

 

 CentOS7, PHP7 환경에서 redis와 세션 클러스터링을 사용하기 위해 필요한 작업을 정리해 보았다.

레디스 설치.
php extension 설치.
세션 설정.
아파치 재시작.

 

1. 레디스 패키지 설치, 확인. 레디스 서버가 별도로 있다면 이 작업은 패스해도 된다.

yum install redis

yum list installed redis

 

// 레디스 호스트, 포트 설정 부분.
vi /etc/redis.conf
#bind 127.0.0.1
bind (변경하고 싶은 IP)

// 레디스 시작. 기본 포트는 6379이다.

service redis start

service redis status

 

// 레디스 접속 확인

redis-cli -c -h 127.0.0.1 -p 6379

-c 옵션을 주면 클러스터링 된 노드에 접근 가능하다.

 

redis-cli -c -h 127.0.0.1 -p 6379 info

이 명령어로 레디스의 정보를 볼 수 있다.

 

2. php extension 설치. CentOS7에서 작업하였다.

phpredis와 C로 만들어진 redis가 있는데, C로 만들어진 것을 사용하였다.

redis 소스를 다운받아서 컴파일, make 하면 so 파일이 만들어지는데 그걸 php에 등록하는 작업이다.

CentOS는 이렇게 작업해야 한다고 한다. 우분투가 이런 부분은 확실히 편한 듯.

 

// redis 소스 다운로드

wget http://pecl.php.net/get/redis-3.1.2.tgz
tar -zxvf redis-3.1.2.tgz

cd redis-3.1.2

 

// redis.so 파일 만들기

phpize

phpize가 실행되지 않으면 전체 경로로 실행. php 설치 경로는 다를 수 있다.

/usr/local/php/bin/phpize


./configure --with-php-config=/usr/local/php/bin/php-config

make test

make install

 

cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/

cp redis.so ../

 

3. 세션 설정

// php.ini 파일 수정 유저마다 파일 위치가 다를 수 있다.

// 세션 클러스터링 설정.

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379","tcp://111.222.333.444:6379";

session.save_path = "tcp://127.0.0.1:6379";

 

111.222.333.444:6379 다른 서버에 레디스가 떠있다면 위처럼 여러 개를 설정할 수 있다.

여러 개의 레디스 서버가 설정 가능하다.

테스트해 보니 여러 개의 레디스를 save_path에 설정해도 첫 번째 노드에만 저장이 되었다.

 

session.save_handler = 'rediscluster'

session.save_path = "seed[]=127.0.0.1:6379&seed[]=127.0.0.1:6380"

이런 식으로 rediscluster를 핸들러로 설정할 수 있는데,

php.ini 말고 프레임워크에서 rediscluster를 지원하지 않을 수도 있다.

 

그럴 땐 레디스를 클러스터로 구성하고 predixy를 프록시로 윗단에 두면 된다.

session.save_path는 predixy의 아이피와 포트로 설정하면 된다.

참고사이트: https://co-de.tistory.com/m/25

 

// extension 추가

extension=redis.so

 

4. 아파치 재시작

아파치를 재시작하면 redis 설정이 적용된다.

 

// php 레디스 설정 확인. 콘솔 명령어.
php -i | grep redis

 

// phpinfo()를 통해서도 확인 가능하다.

그다음은 PHP소스에서 레디스가 잘 되는지 확인하면 된다.

 

반응형

'PHP' 카테고리의 다른 글

PHP 이미지 처리 및 화질 개선  (0) 2023.08.18
웹 개발 시 인코딩 확인 방법  (0) 2022.03.16

댓글