[Redis] Strings 명령어 설명 및 예제

' ); document.write( '' ); (adsbygoogle = window.adsbygoogle || []).push({}); } else if (window.innerWidth < 768) { document.write( '‘ ); (adsbygoogle = window.adsbygoogle || []).push({}); } ]]>

Strings 관련 명령어 예제

 

– SET, GET

설명(SET) : 가장 기본적인 데이터 입력 형태로
키와 값을 입력한다. 만약 키에 값이 이미 지정되어 있으면
타입에 상관없이 덮어씌워 진다.
설명(GET)
가장 기본적인 데이터 출력 형태이며 키에 값이 없으면 nil을
반환한다

시간복잡도 : O(1)

redis-cli > SET key value [EX seconds] [PX milliseconds] [NX|XX]

옵션 :

   – EX seconds : 만료시간을 초 단위로 설정
 
 – PX milliseconds : 만료시간을 밀리초 단위로 설정
 
 – NX : 값이 존재 하지 않을 경우에만 키 값에 값을
저장
   – XX : 값이 존재할 경우에만 키 값에
덮어씀

redis-cli > GET key

 redis > SET test “hello”  
  // 기본적인 set 저장 형태

 “OK”
 redis > SET test2 “hello” EX 10  
  // 10초 후에 데이터 소멸

 “OK”
 redis > SET test3 “hello” PX 5000 
   // 5초 후에 데이터 소멸

 “OK”
 redis > SET test4 “hello” NX  
  // test4키는 값이 존재하지
않으므로 저장

 “OK”
 redis > SET test5 “hello” EX 10    
// test5키는 값이 존재하지 않으므로 저장을 하지
못함

 “(nil)”
 redis > GET test
 “hello”

 




– SETEX

설명 : 문자열 값을 보관할 키를 설정하고 초
단위로 시간을 설정 합니다.

시간복잡도 : O(1)

redis-cli > SETEX key seconds value

 redis > SETEX test1 10 “hello”
 “OK”
 redis > ttl test1
 (integer) 10
 redis > GET test1
 “hello”
 // After 10 seconds //
 redis > GET test1
 “(nil)”

 

– SETNX

설명 : 키가 존재하지 않을 경우에만 값을
지정할 수 있다. (SET if Not
eXists) 의 줄임말이다.

시간복잡도 : O(1)

redis-cli > SETNX key value

 redis > SETNX test1 “hello”
 (integer) 1
 // Success

 redis > SETNX test1 “world”
 (integer) 0
 // Fail

 redis > GET test1
 “hello”

 

 

 

– STRLEN

설명 : 키에 저장된 값의 길이를 리턴한다. 0을
리턴할 때는 키가 존재하지 않는다

시간복잡도 : O(1)

redis-cli > STRLEN key

 redis > SET test1
“hello”

 “OK”
 redis > STRLEN test1
 (integer) 5
 redis >
STRLEN test2

 (integer) 0

 

– SETRANGE, GETRANGE

설명(SETRANGE) : 값의 전체 길이에 대해 지정된
오프셋에서 시작하여 키에 저장된 문자열의 일부를 덮어
쓴다.

설명(GETRANGE) : 키에 저장되어 있는
값을 잘라서 가져온다.

시간복잡도 : O(N)

redis-cli >
SETRANGE key
offset value

redis-cli >
GETRANGE key
start end

 

 redis >
SET test “hello world”

 “OK”
 redis > SETRANGE test 6 “Redis”
 “hello Redis”
 redis >
GETRANGE test 0 -1

 “hello Redis”
 redis > GETRANGE test 0 4
 “hello”
 redis >
GETRANGE test -3 -2

 “di”
 redis >
GETRANGE test -5 -1

 “Redis”

 

– INCR, DECR

설명(INCR) : 키에 저장된 수를 1씩 증가
시킵니다. 값이 없으면 0부터 시작합니다.

설명(DECR) : 
키에 저장된 수를 1씩 감소 시킵니다. 값이 없으면 0부터
시작합니다.

시간복잡도 : O(1)

redis-cli > INCR key

redis-cli > DECR key

 

 redis > INCR aaa
 (integer) 1
 redis > INCR aaa
 (integer) 2
 redis > INCR aaa
 (integer) 3
 redis > DECR aaa
 (integer) 2
 redis > DECR aaa
 (integer) 1
 redis > DECR aaa
 (integer) 0

 

 




– INCRBY, DECRBY

설명(INCR) : 키에 저장된 수를 지정된
값을 증가 시킵니다. 값이 없으면 0부터
시작합니다.

설명(DECR) : 
키에 저장된 수를 지정된 값을 감소 시킵니다. 값이 없으면 0부터 시작합니다.

시간복잡도 : O(1)

redis-cli > INCRBY key increment

redis-cli > DECRBY key increment

 

 redis > INCR aaa
 (integer) 1
 redis > INCRBY aaa 10
 (integer) 11
 redis > DECRBY aaa 5
 (integer) 6

 

 

 

– INCRBYFLOAT

설명 : 키에 저장된 수를 지정된 값 만큼 key에
소수점을 나타내는 문자열을 증가, 감소 시킵니다. 키가
존재하지 않으면 0으로 설정됩니다. 다음 조건 중 하나가
발생하면 오류가 반환 됩니다.
 – 키에 잘못된
유형의 값이 들어 있을 경우(문자열이 아님)
 –
현재의 키 내용 또는 지정된 증가분은 배정 밀도 부동 소수점
수로 구문 분석 할 수 없습니다.

시간복잡도 : O(1)

redis-cli > INCRBYFLOAT key increment

 

 redis > SET aaa 10.5
 “OK”
 redis > INCRBYFLOAT aaa 0.1
 “10.6”
 redis > INCRBYFLOAT aaa -5
 “5.6”

 

 

 

 

– MSET, MGET

설명(MSET) : 지정된 키를 각각의 값의 값으로
설정합니다. MSET은 일반 SET와 마찬가지로 기존 값을 새로
바꾼다. 기존 값을 덮어 씌지 않으려면 MSETNX를 참조
설명(MGET) : 지정된 모든 키의 값을 반환합니다. 키의 값이 없으면 nil이
리턴

시간복잡도 : O(N)

redis-cli > MSET key value [key value…]

redis-cli > MGET key [key …]

 

 redis >
MSET key1
“hello” key2 “hello2” key3 “hello3”

 “OK”
 redis > MGET key1 key2 key3
 1) “hello”
 2) “hello2”
 3)
“hello3”


 

 

 

– MSETNX

설명(MSETNX) : 지정된 키를 각각의 값으로 설정합니다. MSETNX는 단 하나의
키가 이미 존재하면 아무 작업도 수행하지 않습니다.

시간복잡도 : O(N)

redis-cli > MSETNX key value [key value…]

redis-cli > MGET key [key …]

 

 redis > MSETNX key1 “hello” key2 “hello2” key3 “hello3”
 (integer) 1
 redis > MSETNX key3 “hello3” key4 “hello4” key5 “hello5”
 (integer) 0

 

 

 

– PSETEX

설명(PSETEX) : 만료시간이 초 대신 밀리 초 단위로
지정된다는 차이점만 제외하고 SETEX와 똑같이 작용
시간복잡도 : O(1)

redis-cli >
PSETEX key
milliseconds value

 

 redis > PSETEX key1 1000 “hello”
/* 1초로 지정 */

 “OK”

 

 

 

– GETSET

설명(GETSET) : 값을 리턴 후 특정 값으로 재
설정 합니다. 기존에 지정된 값이 없으면 nil을 반환 후
새로운 값을 저장
시간복잡도 : O(1)

redis-cli > GETSET key value

 

 redis > SET key “hello”
 “OK”
 redis >
GETSET key “mello”

 “hello”
 redis >
GETSET key2 “hello”
/* 값이 없을 경우는 nil을 반환 후 새로운 값을
저장
 */

 (nil)
 redis > GET key2
 “hello”

 

 

 

– APPEND

설명(APPEND) : key가 이미 있고 문자열인 경우에
문자열 끝에 값을 추가합니다. 키가 존재하지 않으면 새로
생성되고 빈 문자열로 설정되므로 APPEND는 SET 과
유사합니다.
시간복잡도 : O(1)

redis-cli > GETSET key value

 

 redis > EXISTS key1
 (integer) 0
 redis > APPEND key1 “Hello”
 (integer) 5
 redis > APPEND key1 “World”
 (integer) 11
 redis > GET key1
 “hello world”




댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤