1. String 

 

- String은 일반적인 Text문자열이며, key와 value가 각각 하나씩인 일대일 관계(유일)

- Text형태만 저장할 수 있는것이 아니라, binary safe string이다.

- 이것이 의미하는 것은 JPEG 이미지나 숫자 알파벳 등을 사용할 수도 있다는 것이다.

- key와 value 모두 넣을 수 있는 최대 길이는 512MB이다.

- key는 너무 길면 찾기 어렵고, 불필요한 메모리 소모가 일어난다.

- key는 너무 짧으면 뭔지 해독하기 쉽지 않으므로 알맞게 하도록 하자.

- key를 구성할때 단어 사이에 구분자를 사용하는 것이 좋습니다. 
  예를 들어 ':', '-' 등을 사용해서 key를 구성하면 쉽게 알아볼 수 있습니다.

 

String 명령어는 수없이 많으므로 몇 개만 보고 나머지는 아래 사이트에서 시간날때 해라..

 

 데이터형 String의 명령어 리스트 모음

 

 

SET KEY VALUE   :  key-value 형식으로 데이터를 저장.

GET KEY :  저장된 KEY를 불러옴.

 

SET hi Hello : hi라는 키에 Hello라는 값이 저장.

GET hi : Hello

 

value값이 한 단어가 아니라면, 쌍따옴표를 사용한다. 

 

SET hello "HELLO WORLD!" --> hello란 키에 HELLO WORLD! 문자열 저장

GET hello --> HELLO WORLD!

DEL hello --> key값 삭제. 제거됨. (nil)뜸.

 

SET hello hoho 

SET hello haha

쓴데 또 쓰면 당연히 나중에 쓴 값(value)이 저장됨.

그 외에도 EX 나 NX 등 많음. 이런 명령어는 시간 많을때 보도록..

 

2. Lists

 

- 일반적인 배열로 생각하면 된다.

- List는 key 1개에 n개의 value를 갖는다. (단, 중복된 값 저장 가능함)

- 입력된 데이터값은 입력된 순서대로 순차적으로 저장 및 처리된다.

- 주로 큐(Queue)와 스택(Stack)으로 사용된다.

큐 : 들어오는 데이터들 순서대로 처리할 때 사용한다.

스택 : 웹브라우저의 Back 버튼과 같이 주로 되돌아갈때 사용한다.

 

- 한 key에 담을 수 있는 최대 갯수는 4,294,967,295개(2^32 - 1개)

- 대표적인 명령어 : LPUSH RPOP

 

명령어 LPUSH : 

리스트에서 데이터를 저장하는데 사용한다.

처음 저장한 데이터가 리스트의 맨 오른쪽에, 가장 마지막에 저장한 데이터가 리스트의 맨 왼쪽에 위치한다.

 

lpush KEY VALUE (한 개의 VALUE 저장)    또는

lpush KEY VALUE VALUE VALUE   (한 줄에 여러개 데이터 저장 가능) 

 

 

명령어 RPOP : 

리스트의 오른쪽에서 데이터를 하나씩 꺼낸다. 즉, 먼저 저장된 값을 꺼내온다.

 

데이터형 Lists의 명령어 리스트 모음

 

 

3. Sets

 

 - Group 형태로 key 1개에 n개의 값을 갖는다. (단, 중복된 값 허용하지 않음)

 - 입력된 순서와 상관없이 저장되는 정렬되지 않은 집합형이다.

 - '집합'이기 때문에 한 key에 중복된 데이터는 존재할 수 없다.

 - 즉, 동일한 key에 같은 값 value A가 두 번 추가된다면 값은 하나만 존재하게 된다.

 - 한 key에 담을 수 있는 최대 갯수는 4,294,967,295개(2^32 - 1개)

 - Set의 경우 집합 연산을 제공한다. 합집합, 교집합, 차집합을 할 수 있다.

-  Sets에서는 집합이라는 의미에서 value를 member라 부른다.

   명령어 SADD : 데이터를 저장하기 위한 명령어.

 

데이터형 Sets의 명령어 리스트 모음

 

 

4. Sorted Sets

 

- key 하나에 여러개의 score와 value로 구성된다.

- Sets과 마찮가지로 중복된 데이터는 허용하지 않는다.

  동일한 키에 값을 여러번 추가해도 하나만 존재하게 된다.

- Set에 'score'라는 필드가 추가된 데이터형이다.

- score로 데이터 값(value)의 순서를 정렬(sort)한다.

- score가 같다면 데이터 값(value)으로 정렬(sort)한다.

- 정렬된 데이터가 필요한 경우 Sorted Set 데이터형을 사용한다.

 

5. Hashes

 

- Hashes의 경우 key 하나에 여러개의 field와 value 쌍으로 구성된다.

- 하다.

 
 
Hashes VS Table 공통점
1. Hashes가 필드(field)와 값(value)로 구성된다는 점은 RDB의 table과 비슷하다.
2. Hash key는 table의 PK, field는 column, value는 value로 생각하면 비슷하다.
3. Key가 PK와 같은 역할을 하기떄문에 Key 하나는 table의 하나의 row와 같다.
 
Hashes VS Table차이점
1. Table의 column 수는 일반적으로 제한이 있다.
   하지만, Hashes의 field의 수는 40억개로 거의 무제한에 가깝다.
 

2. Table에서 column을 추가하려면 alter문으로 미리 table을 변경해야 하지만, 

   Hash에서는 그러한 사전 작업이 필요없다. 따라서, field의 추가/삭제가 자유롭다.

   field의 추가/삭제는 해당 key에서만 영향을 미친다.

 

 

https://www.10000duck.com/ducks/44

 

10000duck - 아프가니스탄 위기상황 대응 긴급구호

온라인 모금함을 통해 기부하세요.

www.10000duck.com

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.redisgate.com/redis/command/common.php

http://kerocat.tistory.com/1

http://bcho.tistory.com/654 

Posted by sungho88
,