1. String
- String은 일반적인 Text문자열이며, key와 value가 각각 하나씩인 일대일 관계(유일)
- Text형태만 저장할 수 있는것이 아니라, binary safe string이다.
- 이것이 의미하는 것은 JPEG 이미지나 숫자 알파벳 등을 사용할 수도 있다는 것이다.
- key와 value 모두 넣을 수 있는 최대 길이는 512MB이다.
- key는 너무 길면 찾기 어렵고, 불필요한 메모리 소모가 일어난다.
- key는 너무 짧으면 뭔지 해독하기 쉽지 않으므로 알맞게 하도록 하자.
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 :
리스트의 오른쪽에서 데이터를 하나씩 꺼낸다. 즉, 먼저 저장된 값을 꺼내온다.
3. Sets
- Group 형태로 key 1개에 n개의 값을 갖는다. (단, 중복된 값 허용하지 않음)
- 입력된 순서와 상관없이 저장되는 정렬되지 않은 집합형이다.
- '집합'이기 때문에 한 key에 중복된 데이터는 존재할 수 없다.
- 즉, 동일한 key에 같은 값 value A가 두 번 추가된다면 값은 하나만 존재하게 된다.
- 한 key에 담을 수 있는 최대 갯수는 4,294,967,295개(2^32 - 1개)
- Set의 경우 집합 연산을 제공한다. 합집합, 교집합, 차집합을 할 수 있다.
- Sets에서는 집합이라는 의미에서 value를 member라 부른다.
명령어 SADD : 데이터를 저장하기 위한 명령어.
4. Sorted Sets
- key 하나에 여러개의 score와 value로 구성된다.
- Sets과 마찮가지로 중복된 데이터는 허용하지 않는다.
동일한 키에 값을 여러번 추가해도 하나만 존재하게 된다.
- Set에 'score'라는 필드가 추가된 데이터형이다.
- score로 데이터 값(value)의 순서를 정렬(sort)한다.
- score가 같다면 데이터 값(value)으로 정렬(sort)한다.
- 정렬된 데이터가 필요한 경우 Sorted Set 데이터형을 사용한다.
5. Hashes
- Hashes의 경우 key 하나에 여러개의 field와 value 쌍으로 구성된다.
- 하다.
2. Table에서 column을 추가하려면 alter문으로 미리 table을 변경해야 하지만,
Hash에서는 그러한 사전 작업이 필요없다. 따라서, field의 추가/삭제가 자유롭다.
field의 추가/삭제는 해당 key에서만 영향을 미친다.
https://www.10000duck.com/ducks/44
http://www.redisgate.com/redis/command/common.php
http://kerocat.tistory.com/1
http://bcho.tistory.com/654
'서버 > Redis' 카테고리의 다른 글
[Redis] 우분투에서 Redis Desktop Manager 설치하기 (0) | 2016.06.14 |
---|---|
[Redis] 우분투에서 레디스(Redis) 설치하기 (0) | 2016.06.14 |
[Redis] 레디스 개념 및 특징 (1) | 2016.06.10 |