PHP + redis(phpredis) 연동하기

 

1. 사용패키지 및 버전

PHP-5.4
redis-3.0.1
phpredis-2.2.7
igbinary-1.2.1

이미 php와 redis가 설치되어 있다고 가정하고..
난 간단하게 pecl 을 이용하려 한다.

 

2. igbinary 설치

설치방식 : pecl
PECL명 : igbinary (https://pecl.php.net/package/igbinary)

pecl install igbinary

cp /usr/local/lib/php/extensions/no-debug-non-zts-20100525/igbinary.so /usr/local/lib/php/extensions

 

3. phpredis 설치

설치방식 : pecl
PECL명 : redis (https://pecl.php.net/package/redis)

php+redis 구성시 predis 또는 phpredis 가 유명하다고 한다.
둘중에 무엇을 선택할까 싶어 찾아보니 C로 작성된 phpredis가 퍼포먼스가 좋다고 해서 받으러 가봤더만..

패키지 배포를
https://github.com/phpredis/phpredis
여기서 하더라…

그런데 이걸 받으려면 git 명령을 또 힘들게 써야 하고…
아니면 우측에 있는 download.zip 으로 받아서 또 풀고..
하는 작업이 귀찮아서… pecl 을 이용한 설치를 선택했다..

pecl 패키지명은 redis 라고 되어있지만… 똑같은거다.

pecl install redis

cp /usr/local/lib/php/extensions/no-debug-non-zts-20100525/redis.so /usr/local/lib/php/extensions

 

4. 의문점

편하자고 pecl로 설치해놓고 뭣하러 또 복사를 하나???

그냥….. 이건 그냥 개인의 스타일

php.ini 파일에

extension_dir = ”/usr/local/lib/php/extensions”
extension=igbinary.so
extension=redis.so

이렇게 쓰고싶었을뿐…

물론 extension_dir 항목을 주석처리하고 사용하면
내가 진행한 방식처럼 so 파일을 복사하지 않고

extension=igbinary.so
extension=redis.so

두줄을 추가하는 것 만으로 간편하게 사용할 수 있다.. (사실 이게 기본이긴 하다… )

그리고 이것을 굳이 설명하는것은…
extension_dir 옵션에 대한 활용을 간단하게 언급하기 위해서…………

 

5. 설치확인

phpinfo(); 함수로 웹에서 정상 출력되는지 확인하자..

* redis

로 검색했을때 별도의 섹션이 존재하면 된다…

 

6. 테스트

출처 : https://code.google.com/p/phpredis/
(개발자가 아니라서, 이런 간단한 코드도 구걸을 해와야 한다.. )

$redis = new Redis();
$redis->connect(’127.0.0.1’, 6379);
$redis->set(’key’, ’val’);
echo $redis->get(’key’);

이 코드는 redis에 접속해서
key 라는 이름의 키를 생성하되, 해당 키의 값이 val 이 되도록 집어넣고
key 라는 이름의 키 값을 불러오는…
(것 같다.. 내 생각엔)

웹에서 에러없이 파싱이 되고  val 이라는 값을 출력하면 성공…

참고로
$redis->set(’key’, ’val’);
이 구문을

$redis->set(’key’, ’val’, 3);
이렇게 변경하면

저장된 키&값이 3초후에 삭제된다…

redis를 세션용으로 쓴다고 하면… 저렇게 활용하면 되지 않을까 싶다…

About KENNETH 11333 Articles
지락문화예술공작단

2 Comments

  1. 안녕하세요.
    php를 써본지 몇일되지 않아 igbinary가 무엇인지
    꼭 설치해야되는지 궁금하여 댓글을 남기게 되었습니다.

    igbinary를 건너뛰고 phpredis만 설치하여 redis에 연결하는것이
    되지 않는것일까요?
    감사합니다.

  2. 우선 igbinary 은 반드시 활성화 되어야 하는 것은 아닙니다.

    igbinary에 대한 내용은
    https://pecl.php.net/package/igbinary
    여기서 확인이 가능하시지만

    보통 memcached 나 redis가 메모리 기반으로 데이터를 저장하게 되는데요, 이 경우 igbinary를 통한 데이터 용량의 절약은 매리트가 있다고 생각합니다.

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.