티스토리 뷰
이전 포스트에서 연동 테스트에 끝났으면 본격적으로 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 출력
'개발일지 > NOSQL' 카테고리의 다른 글
Phpredis에서 리스트, 해시, 셋, 정렬된 셋, 비트맵, 하이퍼로그로그 사용하기. (0) | 2018.05.27 |
---|