문자열, 숫자 serialized object(JSON String) 등을 저장할 수 있음
Set
을 사용하여 지정한 key값으로 데이터를 저장할 수 있고 Get
을 사용하여 저장한 key값 기준으로 데이터를 불러올 수 있다.
MSET
과 MGET
을 사용하여 다중 필드에 대한 값을 저장 및 조회할 수 있음SET lecture youchan ## lecture 이라는 key값으로 youchan 이라는 문자열 저장
MSET price 100 language ko ## price, language라는 key값에 데이터 각각 저장
MGET lecture price language ## 다중 조회, youchan, 100, ko
INCR price ## price key값의 데이터에 1추가 즉, 101 조회
INCRBY price 9 ## 추가로 9 추가 -> 110 조회
SET ‘{“lecture”: “inflearn-redis”, “language”: “en”}’ ## JSON 형태도 저장 가능
String을 Linked List로 저장(push / pop에 최적화)
Queue와 Stack 구현에 사용
LPUSH queue job1 job2 job3 // queue 라는 key값의 오른쪽 데이터들 추가
RPOP queue // "job1" 출력 -> Queue는 먼저 들어간 데이터가 먼저 나옴
LPOP queue // "job3" 출력 -> Statck은 가장 늦게 들어간 데이터가 먼저 나옴
// 이렇게 pop으로 조회된 데이터는 원본 List에서 제거된다.
LPUSH queue job4 job5
LRANGE queue 0 -1 // 0번 인덱스부터 마지막까지 조회 -> job2 ~ 5까지 조회됨
List 내부에 공간 번호에 대해서는 왼쪽부터는 인덱스 개념이 적용되고 오른쪽 부터는 음수 1부터의 개념이 적용된다.
Uniqie String을 저장하는 정렬되지 않은 집합
Set Operation
사용 가능 → 집합에 대한 연산 처리가 가능함
SADD user:1:fruits apple banana orange orange // 데이터 저장(user:1:fruits)
SMEMBERS user:1:fruits // 데이터 조회 -> apple, banana, orange
// Sets는 데이터 저장 시 중복처리 함, 데이터 순서 정렬X
SCARD user:1:fruit // 중복 제거된 데이터 수 조회 -> 3
SISMEMBER user:1:fruits banana // 일치하는 데이터 수 조회 -> 1
// 일치하지 않으면 0 반환
SADD user:1:fruits apple lemon // 테스트 user2 추가
SINERT user:1:fruits user:2:fruits // 교집합 조회 -> `apple` 조회됨
SDIFF user:1:fruits user:2:fruits // 차집합 조회(먼저 입력한 key값 기준)
// -> banana, orange 조회
SUNION user:1:fruits user:2:fruits // 합집합 조회
field-value 구조를 갖는 데이터 타입