티스토리 뷰

반응형

저번에는 AWS에 Redis-Server를 설치하여 Redis를 사용할 준비를 끝냈다.


이제 Redis 클라이언트 중 하나인 PhpRedis를 설치하고 연동해 보자.


RDBMS(Postgresql)을 PHP와 연동하기 위해 php-pgsql을 설치하는 것처럼, Redis를 PHP와 연동하기 위해서는 php 확장 라이브러리를 설치해야 한다.


※ 참고로 여러 Redis PHP 클라이언트(Predis 등)가 있지만 PhpRedis가 C언어로 만들어져 있어 성능면에서 좋다.(자료수가 많으면 많을수록)


설치 방법은 2가지로.

AWS에서 제공하는 PhpRedis를 자동으로 설치하는 방법과, 

Pecl을 이용하여 설치하는 방법이 있다.



AWS에서 제공하는 것은 버전이 낮으나(3.1.2) 명령어 하나로 매우 쉽게 설치할 수 있다.


Pecl을 이용하는 방법은 항상 최신버전(4.0.2)을 설치할 수 있으며 컴파일 설치만큼은 아니지만 여러가지 귀찮음이 있다.


인터넷에는 PhpRedis 컴파일 설치 방법을 소개하고 있으나, 번거로워 보여 포기했다. 편하게 살자.





1. AWS에서 제공하는 PhpRedis 설치방법



Redis를 PHP와 연동하기 위해서는 php 확장 라이브러리를 설치해야 한다. 다행히 AWS에서 확장 라이브러리를 제공하기 때문에 자동 설치가 가능하다.


sudo yum install php71-pecl-redis


의존 라이브러리인 igbinary도 자동으로 설치된다.


끝. 참 쉽죠? 3번으로 이동해서 연동 테스트를 해봅시다.






2. Pecl을 사용하여 PhpRedis 설치하는 방법


2-1. Pecl이 뭐지?


Php에는 여러가지 확장(extension) 라이브러리들(PDO, mbstring, pgsql, mysqld 등) 이 있다.


Pecl은 이러한 확장 라이브러리들을 모아두는 일종의 보관소이다.(repository) Pecl을 사용하기 위해서는 Pear를 설치해야 한다.


(Pecl에서 지원하는 확장 라이브러리 패키지들을 보려면 여기로)


홈페이지 아이콘을 보아하니 피클이라 읽는 듯 하다.



2-2. 그럼 Pear는 뭐지?


Pear는 Pecl에 있는 확장 패키지들을 손 쉽게 설치 할 수 있도록 하는 Pecl의 자매 라이브러리이다.


  • 설치(AWS, PHP7 기준)

sudo yum install php7-pear


  • 설치 확인(PHP7 기준)

pecl7 version



설치 준비 끝.

※ 이제부턴 PHP 라이브러리의 최신 패키지들을 귀찮게 컴파일 설치할 필요없이 pecl7 명령어를 이용하여 손 쉽게 설치할 수 있다.


2-3. PhpRedis를 설치하기 위한 필수 라이브러리인 igbinary 설치


18.05.25 현재 최신 stable 버전은 2.0.6이다.

(igbinary Pecl 홈페이지를 들어가고 최신 stable 버전을 설치하세요.)


sudo pecl7 install https://pecl.php.net/get/igbinary-2.0.6.tgz


2-4. PhpRedis 설치


18.05.25 현재 최신 stable 버전은 4.0.2이다.

(phpredis Pecl 홈페이지를 들어가서 최신 stable 버전을 설치하세요.)


sudo pecl7 install https://pecl.php.net/get/redis-4.0.2.tgz


설치 도중에 support igbinary, support lzf를 할 것이냐고 물어본다. 지금 쓰지는 않겠지만.. 모두 y 해주자.


(igbinary는 메모리(RAM)에 들어있는 Redis의 데이터들을, 나중에 하드(HDD & SDD)에 있는 레디스 데이터베이스(RDB)에 저장할 때 직렬화 시키기 위하여 필요한 라이브러리이다.)


(또한 lzf도 레디스 데이터베이스에 저장할 때 적은 메모리와 고속의 압축을 지원하는 압축 라이브러리이다.)


2-5. Php.ini 에 igbinary와 Phpredis 등록


이제 php7 설정파일에 설치한 2개의 라이브러리를 등록하기만 하면 된다.


sudo vi /etc/php.ini


vi 편집화면으로 들어가서, 아무곳에다가


extension = igbinary.so

extension = redis.so

다음을 입력하고 저장.


sudo service nginx restart && service php-fpm restart


재시작 하면. 설치는 끝.




확인




자신의aws아이피/phpinfo.php (만약, phpinfo(); 파일을 안만드셨다면 만드는 방법을 검색해보세요. 제 포스트에도 나와 있습니다.)


phpredis가 설치되었는지 검색해보고 확인한다.








3. 연동 테스트


자동 설치는 당연히 연동이 될테니 Pecl로 설치한 걸로 테스트를 해보겠다.


PhpStorm을 키고.


php파일명은 알아서 만든다.


나는 test_redis.php로 만들었다.

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', '6379', 2.5); // 루프백 주소, 포트번호, 요청 타임아웃시간(선택사항)
$redis->auth('비밀번호'); // 만약 requirepass 옵션을 설정하였으면 비밀번호를 입력하자. 안했으면 이부분을 제거해도 됨
$redis->set("my_name","Hong-Gil-Dong"); // key, value 값을 입력하자
$redis->close();


다음과 같이 입력하고 내 경로(/etc/nginx/html 또는 /usr/share/nginx/html)에 업로드 한다.


주소창에 자신의AWS아이피/test_redis.php 입력한다.


아무것도 안넣었으니 흰 창이 뜰 것이다.


이제 AWS로 돌아와서 redis-cli 창을 띄워보고 


get my_name를 입력해보자.





다음과 같이 뜨면 연동 성공.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함