기타

redis 데이터 구조 학습

whyHbr 2024. 12. 2. 15:49
728x90
반응형

docker desktop - container - redis - exec - open in external terminal

접속 후

 redis-cli -p [설정한 포트번호]

 

혹은 cmd 창에서

C:\Users>docker exec -it redis redis-cli -h localhost -p [설정한 포트 번호]


Redis 데이터 구조:

 

String 타입의 데이터 구조, 텍스트, 직렬화된 객체 등을 저장하는 용도로 자주 사용된다.

SET:

127.0.0.1:6379> set coupon:1 coupon_test  //set key value 저장
OK
127.0.0.1:6379> get coupon:1 //get key 조회
"coupon_test"

List

데이터 삽입 순서에 따라 정렬된 문자열 컬렉션 형태

 

데이터 삽입 명령어

 

LRANGE

List에서 지정된 범위의 요소를 반환

localhost:6379> LRANGE coupon_list 0 -1
(empty array)

 

 

LPUSH

List 의 head(왼쪽) 에 지정된 요소를 추가

localhost:6379> LPUSH coupon_list coupon_1
(integer) 1
localhost:6379> LPUSH coupon_list coupon_2
(integer) 2
localhost:6379> LPUSH coupon_list coupon_3
(integer) 3

 

여기서 LRANGE 로 조회를 해보면

localhost:6379> LRANGE coupon_list 0 -1
1) "coupon_3"
2) "coupon_2"
3) "coupon_1"

삽입한 값을 볼 수 있다.

순서를 보면 역순이다.  이렇듯 LPUSH는 앞쪽에 데이터를  추가하는 형태이다. 

 

RPUSH 

List에 tail(오른쪽)에 지정된 요소를 추가

localhost:6379> RPUSH coupon_list coupon4
(integer) 4
//LRANGE 로 확인을 해보면
localhost:6379> LRANGE coupon_list 0 -1
1) "coupon_3"
2) "coupon_2"
3) "coupon_1"
4) "coupon4"

 

 

LPOP

List의 첫 번 째(왼쪽) 요소를 제거하고 반환

localhost:6379> LPOP coupon_list
"coupon_3"

localhost:6379> LRANGE coupon_list 0 -1
1) "coupon_2"
2) "coupon_1"
3) "coupon4"

 coupon_3이 제거 된 것을 볼 수 있다.

 

 

RPOP

List의 마지막 요소(오른쪽)를 제거하고 반환

localhost:6379> RPOP coupon_list
"coupon4"

localhost:6379> LRANGE coupon_list 0 -1
1) "coupon_2"
2) "coupon_1"

coupon4가 제거되었다. 

 

 

LLEN

List에 저장된 요소 수를 반환

localhost:6379> LLEN coupon_list
(integer) 2

localhost:6379> LRANGE coupon_list 0 -1
1) "coupon_2"
2) "coupon_1"

 

LPOS

List에서 일치하는 요소를 찾고 인덱스 반환

localhost:6379> LRANGE coupon_list 0 -1
1) "coupon_2"  
2) "coupon_1"
localhost:6379> LPOS coupon_list coupon_1
(integer) 1
localhost:6379> LPOS coupon_list coupon_2
(integer) 0
localhost:6379> LPOS coupon_list coupon_3
(nil)

 


SET

순서가 지정되지 않은 문자열 컬렉션. 중복 요소가 허용되지 않는다.

List는 중복 요소가 허용된다. 

localhost:6379> LPUSH coupon_list coupon_2
(integer) 3
localhost:6379> LRANGE coupon_list 0 -1
1) "coupon_2"
2) "coupon_2"
3) "coupon_1"

 

SMEMBERS

set에 저장된 모든 요소를 반환

localhost:6379> smembers soupon_set
(empty array)

 

 

SADD

set에 멤버를 추가

localhost:6379> SADD coupon_set coupon_1
(integer) 1

localhost:6379> SMEMBERS coupon_set
1) "coupon_1"

 

동일한 값 추가

localhost:6379> SADD coupon_set coupon_1
(integer) 0 // <- 응답값이 달라졌다. 
// 조회를 해보면 추가되지 않은 것을 볼 수 있다.
localhost:6379> SMEMBERS coupon_set
1) "coupon_1"

 

SISMEMBER

set에 멤버가 포함되었는지 확인

localhost:6379> SISMEMBER coupon_set coupon_1
(integer) 1

//없는 멤버 조회시
localhost:6379> SISMEMBER coupon_set coupon_2
(integer) 0

 

 

SCARD

set에 저장된 요소 수를 반환

localhost:6379> SMEMBERS coupon_set
1) "coupon_1"
2) "coupon_2"
3) "coupon_3"
4) "coupon_4"
5) "coupon_5"

localhost:6379> SCARD coupon_set
(integer) 5

 

SREM

set에 저장된 요소를 제거

localhost:6379> SCARD coupon_set
(integer) 5
localhost:6379> SREM coupon_set coupon_3 // 삭제
(integer) 1
localhost:6379> SCARD coupon_set //요소 수 확인
(integer) 4
localhost:6379> SMEMBERS coupon_set // 모든 요소 반환
1) "coupon_1"
2) "coupon_2"
3) "coupon_4"
4) "coupon_5"

 


 

Sorted Set

지정된 스코어에 따라 순서사 지정되는 문자열 컬렉션 형태. 중복 요소가 허용되지 않음

localhost:6379> ZRANGE coupon_sorted_set 0 -1
(empty array)

 

ZRANGE

Sorted set에 저장된 범위 내 요소를 반환

 

ZADD

member가 score에 의해 정렬 및 저장. 동일한 score인 경우 사전순 정렬

localhost:6379> ZADD coupon_sorted_set 100 coupon_1
(integer) 1
localhost:6379> ZADD coupon_sorted_set 200 coupon_1
(integer) 0 //중복 coupon_1 은 저장이 안됨. 
localhost:6379> ZADD coupon_sorted_set 200 coupon_2
(integer) 1
localhost:6379> ZADD coupon_sorted_set 300 coupon_3
(integer) 1
localhost:6379> ZADD coupon_sorted_set 50 coupon_4
(integer) 1
localhost:6379> ZRANGE coupon_sorted_set 0 -1
1) "coupon_4" //정수에 따라 정렬됨.
2) "coupon_1"
3) "coupon_2"
4) "coupon_3"

 

 

ZCARD

해당하는 key 의 요소 수 반환

localhost:6379> ZCARD coupon_sorted_set
(integer) 4

 

 

ZPOPMIN

점수가 낮은 순으로 멤버를 제거하고 반환

 

ZPOPMAX

점수가 높은 순으로 멤버를 제거하고 반환 

localhost:6379> ZPOPMIN coupon_sorted_set
1) "coupon_4"
2) "50"
localhost:6379> ZPOPMAX coupon_sorted_set
1) "coupon_3"
2) "300"

 

//ZPOPMIN, ZPOPMAX 후 가장 작은, 가장 큰 score 가 삭제되었다.
localhost:6379> ZRANGE coupon_sorted_set 0 -1
1) "coupon_1"
2) "coupon_2"
728x90

'기타' 카테고리의 다른 글

퀴즈 9회차  (0) 2024.05.02
퀴즈 8회 오답노트  (0) 2024.04.26
퀴즈 7회차  (0) 2024.04.12
퀴즈 6회 오답노트  (1) 2024.03.30
퀴즈 오답노트  (0) 2024.03.22