티스토리 뷰

반응형

이전 포스트에서 연동 테스트에 끝났으면 본격적으로 PhpStorm에서 Redis 사용법을 익혀보자.


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


다음의 코드를 REDIS_CONNECT.php 파일로 저장해서 서버에 올려놓자.


<?php
require_once 'REDIS_CONNECT.php';

이제부터 이 코드로 Redis와 연동되어 있는 상태로 진행하도록 하겠다.



※ REDIS의 모든 자료를 지우기 위해선


$redis->flushAll();


이 명령어를 입력하거나, redis-cli 창에서 FLUSHALL 이라고 입력하면 된다.





1. SET : KEY와 VALUE를 레디스에 저장 함. KEY는 중복을 허용하지 않는다. 같은 KEY의 VALUE는 최근에 저장된 KEY의 VALUE가 저장 됨


2. GET : KEY를 이용하여 VALUE를 불러옴


예)

<?php
require_once 'REDIS_CONNECT.php';

$redis->set("REDIS", "안녕 레디스");
// -> 는 해당 클래스(REDIS)에 있는 함수(Method, function)의 사용을 줄인 것이다.
// set("key", "value") 형태이다.
// KEY는 REDIS, VALUE는 안녕 레디스?

// 3번째 매개변수로는 timeout(데이터의 생존시간(초))을 둘 수 있다.

// 예를들어 $redis->set("REDIS", "안녕 레디스", 3600)는 1시간 동안 VALUE를 유지한다는 의미이다.

// 당연히 이는 부가적으로 쓰일 수 있다. REDIS의 EXPIRE에 대해 찾아보자.

$var = $redis->get("REDIS");
// KEY가 레디스인 VALUE를 $var 변수에 놓는다.

echo $var;
// var 변수 출력


// php 페이지를 웹 브라우저를 통해 실행하면 "안녕 레디스" 라 적혀있을 것이다.





3. MSET : 한 번에 다중 KEY와 VALUE를 저장한다. Phpredis에서는 배열(Array)로 저장한다.


4. MGET : 여러 개의 KEY로 여러 개의 VALUE를 얻을 수 있다. 역시 배열로 return 된다.


예)

<?php
require_once 'REDIS_CONNECT.php';

$redis->mset(array("첫째"=>"철수", "둘째"=>"영희", "셋째"=>"응삼이"));
// array()로, 배열을 선언하였다.
// => 는 해당 배열에 KEY에대한 VALUE를 넣는다는 의미이다. 즉 첫번째 배열에 KEY가 첫째인 VALUE 철수를 넣는다는 것.

$var = $redis->mget(array("첫째", "둘째", "셋째"));
// var 변수를 배열로 만들어 첫째, 둘째, 셋째 KEY에 대한 VALUE 값(철수, 영희, 응삼이)를 가져옴


////////////// 이제 배열을 다양한 방법으로 출력해 보자 /////////////////

print_r($var);
// 배열을 출력해주는 print_r 함수

echo "<br>"; // 개행(Enter)하기 위함임.. 신경쓰지 마세요.
// 또는, echo nl2br("\n");

var_dump($var);
// 배열 뿐 아니라 객체까지 아주 자세하게 출력을 해줌

echo "<br>"; // 개행하기 위함임.. 신경쓰지 마세요.

foreach ($var as $value){ // 배열 $var에 들어있는 value 개수(3개)만큼 $value로 치환하여 반복 출력함
echo $value; // = echo $var[0], echo $var[1], echo $var[2]
}







5. EXPIRE : 해당 KEY에 대한 만료 시간(초 단위)을 추가한다. 만료시간이 지나면 KEY는 삭제된다.


6. TTL(Time To Live) : 해당 KEY의 생존시간을 초 단위로 리턴한다. 키가 만료되었으면 -2를, 만료시간을 설정하지 않았으면 -1를 리턴한다.



예)

<?php
require_once 'REDIS_CONNECT.php';

// 첫 번째 방법, KEY를 과일로, 만료시간은 360초로 정하였다. set 한 순간부터 1초씩 흐름
$redis->set("과일","사과");
$redis ->expire("과일",360);

// 두 번째 방법
// $redis->setex("과일",360,"사과");

// 세 번째 방법
//$redis->set("과일","사과",360);

$ttl = $redis->ttl("과일");

echo $ttl;





7. INCR : 임의의 KEY에 대한 정수로 설정된 VALUE를 1씩 증가시켜, 그 값을 리턴한다. 반대는 DECR


8. INCRBY : 임의의 KEY에 대한 정수로 설정된 VALUE를 임의의 숫자만큼 증가시켜, 그 값을 리턴한다. 반대는 DECRBY


9. INCRBYFLOAT : 임의의 KEY에 대한 부동소수로 설정된 VALUE를 임의의 숫자만큼 증가시켜, 그 값을 리턴한다. 반대는 DECRBYFLOAT


예)

<?php
require_once 'REDIS_CONNECT.php';

$redis->set("채소", 3);
$var1 = $redis->incr("채소"); // KEY 채소에 value 1증가

$redis->set("과일",6);
$var2 = $redis->incrBy("과일", 30); // KEY 과일에 value 30증가

$redis->set("고기", 0.025);
$var3 = $redis->incrByFloat("고기", 0.015); // KEY 고기에 value 0.015 증가

echo $var1."<br>".$var2."<br>".$var3; // 4, 36, 0.4 출력


반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함