메뉴 건너뛰기

GREATUSER

tech

WEB PHP + redis(phpredis) 연동하기

위대한유저 2015.06.04 20:22 조회 수 : 257

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를 세션용으로 쓴다고 하면… 저렇게 활용하면 되지 않을까 싶다…

번호 제목 글쓴이 날짜 조회 수
109 웹사이트 보안 개발 가이드 20160421 관리자 2017.07.25 49
108 jsp 에서 사용자가 생성한 java class 호출 하기 관리자 2015.12.31 50
107 $_SERVER[‘SERVER_SOFTWARE’]=’Apache’ in wp-config.php 관리자 2016.06.24 50
106 Testing the Fastest Way to Import a Table into MySQL (and some interesting 5.7 performance results) 관리자 2015.12.31 51
105 WordPress 4.8.1 Maintenance Release 관리자 2017.08.03 51
104 그누보드 짧은 주소 작성 (nginx) 관리자 2016.02.02 53
103 config static port for nfsd on centos6 관리자 2016.05.21 56
102 pulseaudio [alsa-sink-VT1708S Analog] alsa-sink.c: Error opening PCM device front:0: 부적절한 인수 관리자 2016.12.21 58
101 [MySQL] ERROR 1457 (HY000): Failed to load routine after upgrade or migratrion 관리자 2015.12.31 61
100 The Month in WordPress: August 2017 관리자 2017.09.02 62
99 mysqlbinlog: unknown variable ‘default-character-set=utf8’ 관리자 2016.07.09 64
98 cannot resolve symbol R on android studio 관리자 2016.02.17 65
97 Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MariaDB client in /home1/htdocs/apartzm/affisacc/php/acc_tongys.inc.php on line 188ERROR 1251: Client does not smysql_connect(): Client 관리자 2016.07.26 66
96 리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 – 2편 관리자 2016.08.12 69
95 [AWS] certificate arn:aws:iam server-certificate not found when configure ELB 관리자 2017.06.06 69
위로