-
Redis 2 - Redis의 자료구조 및 명령어 [ List편 ]Redis 2021. 4. 6. 19:39
Redis 기본 자료구조 및 명령어 List 편
명령어 [Key] [Value] 는 Key 값이 [Key], Value 값이 [Value]임을 나타냅니다.
String
1 : 1 방식의 Key - Value 형식
기본 명령어 ⇒ get, set, del
- set [Key] [Value] → key에 value 저장
- get [Key] → key 값의 데이터 조회
- del [Key] → Key 삭제
List
Last, First에 삽입과 삭제가 가능한 자료구조로 Quick List를 사용
기본 명령어 ⇒ lpush, rpush, lpop, rpop, lrange
- lpush [Key] [Value] → key의 List 처음에 [Value] 삽입
시간 복잡도 ⇒ O(1) - rpush [Key] [Value] → key의 List 마지막에 [Value] 삽입
시간 복잡도 ⇒ O(1) - lpop [Key] → key의 List 처음 데이터 삭제
시간 복잡도 ⇒ O(1) - rpop [Key] → key의 List 마지막 데이터 삭제
시간 복잡도 ⇒ O(1) - lrange key start end → List의 start ~ end까지의 데이터 반환 음수인 경우에는 마지막 값을 의미
-1 → 마지막 값, -2 → 마지막 값의 전 값, -3 →... - lpushx, rpushx [Key] [Value] → List가 이미 있는 경우에만 데이터 삽입
시간 복잡도 ⇒ O(1) - lset [Key] index [Value] → 리스트 index 원소의 값을 [Value] 값으로 변경
시간 복잡도 ⇒ O(N) - ltrim [Key] start end → 리스트의 start부터 end만큼 보존하고 나머진 삭제
시간 복잡도 ⇒ O(N)
- rpush로 testList에 R, E, D, I, S를 삽입
마지막부터 삽입하기에 R, RE, RED, REDI, REDIS로 삽입됨을 확인할 수 있음- rpop으로 testList의 마지막 원소부터 제거
S, I, D, E, R 순으로 제거됨을 확인할 수 있음- lpush로 testList에 R, E ,D ,I ,S를 삽입과 lpop으로 첫 원소부터 제거
처음부터 삽입하기에 R, ER, DER, IDER, SIDER로 삽입됨과 S, I, D, E, R 순으로 제거됨을 확인할 수 있음- rpushx로 testList에 데이터 삽입
testList가 존재하지 않을 때는 6을 삽입해도 데이터가 들어가지 않지만 testList에 데이터를 넣어놓은 후
pushx를 할 때 데이터가 정상적으로 들어감을 확인할 수 있음- lset으로 testList의 3번째 원소 값을 X로 변경
testList[2]인 D를 X로 변경됨을 확인할 수 있음- ltrim으로 testList의 3번째 원소부터 마지막까지만 보존하고 나머지는 삭제
testList[2]인 D부터 마지막 원소인 S까지만 남아있음을 확인할 수 있음'Redis' 카테고리의 다른 글
Redis 5 - Spring Boot와 Redis의 연결 (0) 2021.04.06 Redis 4 - Redis의 자료구조 및 명령어 [ Set ] (0) 2021.04.06 Redis 3 - Redis의 자료구조 및 명령어 [ Key ] (0) 2021.04.06 Redis 1 - Redis란? Redis VS Memcached (0) 2021.04.06