1 2 3 4 5 6 L

Page Header > Subtitle

[PHP] PHP + redis(phpredis) 연동하기 기본 사용 샘플

<?php
$redis = new Redis();
try {
$redis->connect('127.0.0.1', 6379, 2.5);//2.5 sec timeout
//Auth Password(redis.conf requirepass)
//$redis->auth('foobared');
} catch (Exception $e) {
exit( "Cannot connect to redis server : ".$e->getMessage() );
}
// //DB Select
if ( !$redis->select(0) ){
exit( "NOT DB Select");
}
$redis->set('key1','value1',10); //유효기간 10초
echo $redis->get('key1');
/*
* print : value1
*/
?>

 

1. 사용패키지 및 버전

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

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

 

2. igbinary 설치

설치방식 : pecl
PECL명 : igbinary (http://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 (http://pecl.php.net/package/redis)

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

패키지 배포를
http://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. 테스트

출처 : http://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초후에 삭제된다… 

 

<?php 
    $redis = new Redis(); 
    $redis->connect('localhost', 6379); 
    $redis->select(0); 
 
     class test 
    { 
         private $a; 
         private $b; 
         public function test() 
         { 
              $this->a = "abcdefg"; 
              $this->b = "1234567"; 
         } 
  
         public function getA() { return $this->a; } 
         private function getB() { return $this->b; } 
    } 
 
    $test = new test(); 
 
    $temp = serialize($test);             // 객체 시리얼라이즈 
 
    //$redis->set('temp', $temp);     // 시리얼라이즈 데이터 캐쉬에 저장 
 
    $t = $redis->get('temp');         // 캐쉬에서 꺼내오기 
 
    $recover = unserialize($t);         // 언시리얼라이즈 
 
    print_r($recover); // 클래스 출력 
?> 

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

PHP/Python

번호 제목 글쓴이 날짜 조회수
77 PHP 정말로 URL이 존재 하는지를 알고 싶다면 미도어묵 01-12 1,145
76 PHP [Nginx PHP-FPM] 페이지 access denied. 뜨는 현상 (see security.limit_extensions) - php7 … 미도어묵 11-05 1,363
75 PHP PHP를 이용한 심플한 게시판 파싱 미도어묵 11-01 1,199
74 PHP CI3 / php7.1 이상 버전 session 버그시~~~ 미도어묵 10-31 776
73 PHP PHP 5 Forms - Validate E-mail and URL 미도어묵 10-01 735
72 PHP php 전화번호 정규식 미도어묵 06-25 844
71 PHP 문자열에 휴대폰번호가 있으면 010-***-****으로 변경. 미도어묵 06-25 836
70 PHP 영상 썸네일 api function 미도어묵 02-13 825
69 PHP php memcached example 미도어묵 01-02 770
68 PHP php curl 을 이용한 자동 로그인 미도어묵 12-22 960
67 PHP Home / APIs / Requests::register_autoloader() – Register the built-in autoloader 미도어묵 12-21 841
66 PHP 업로드된 이미지 정사각형으로 썸네일 만드는 함수 미도어묵 11-01 843
65 PHP PHP + redis(phpredis) 연동하기 기본 사용 샘플 미도어묵 09-18 1,462
64 PHP Simple PHP MySQL Rest API Sample Example Tutorial 미도어묵 09-15 807
63 PHP Creating a simple REST API in PHP 미도어묵 09-15 794
62 PHP 게시물이 삭제 되었습니다 관리자 08-30 893
61 PHP php 링크 파일 다운받기 관리자 08-28 818
60 PHP php용 형태소 분석기 설치 및 바인딩과 실사용 +1 관리자1 08-28 1,157
59 PHP PHP로 HTML DOM 파싱하기 관리자 08-25 817
58 PHP PHP7: install ext-dom issue(composer require --dev phpunit/phpunit) 관리자 08-04 851