💻공부 기록/📌 REDIS
[Redis] List형 명령어
SSOSSO._.
2025. 1. 12. 13:54
반응형
List형 명령어
이전에 포스팅한 String형 명령어에 이어서 이번엔 List형 명령어들을 정리해두려고 한다.
LPUSH
리스트의 왼쪽 (앞쪽)에 값을 삽입한다.
LPUSH fruits "apple"
LPUSH fruits "banana"
LPUSH fruits "cherry"
# 결과: fruits 리스트 → ["cherry", "banana", "apple"]
RPUSH
리스트의 오른쪽 (뒤쪽)에 값을 삽입한다.
RPUSH fruits "pair"
RPUSH fruits "grape"
# 결과: fruits 리스트 → ["cherry", "banana", "apple", "pair", "grape"]
LPOP
리스트의 왼쪽 (앞쪽)에서 값을 삭제하고 반환한다.
LPOP fruits
# 결과: 삭제된 값 → "cherry" / 남은 리스트 → ["banana", "apple", "pair", "grape"]
RPOP
리스트의 오른쪽 (뒤쪽)에서 값을 삭제하고 반환한다.
RPOP fruits
# 결과: 삭제된 값 → "grape" / 남은 리스트 → ["banana", "apple", "pair"]
LRANGE
리스트의 특정 범위의 값을 조회한다.
LRANGE fruits 0 -1 # 전체 조회
# 결과: ["banana", "apple", "pair"]
LRANGE fruits 0 1 # 0~1번째 조회
# 결과: ["banana", "apple"]
LLEN
리스트의 길이를 반환한다.
LLEN fruits
# 결과: (integer) 3
LINDEX
지정한 인덱스의 값을 조회한다.
LINDEX fruits 0 # 첫 번째 요소
# 결과: "banana"
LINDEX fruits -1 # 마지막 요소
# 결과: "pair"
LTRIM
지정한 범위의 값만 남기고 나머지를 삭제한다.
LTRIM fruits 0 1 # 0~1번째 요소만 남김
# 결과: ["banana", "apple"]
LREM
리스트에서 특정 값을 삭제한다.
LREM fruits 1 "banana" # 왼쪽부터 "banana" 1개 삭제
# 결과: "apple"
RPOPLPUSH
첫 번째 리스트의 오른쪽 요소를 꺼내서 (RPOP)
꺼낸 값을 두 번째 리스트의 왼쪽에 삽입한다. (LPUSH)
# 초기 상태
# LPUSH fruits "apple" "banana" "cherry"
# LPUSH vegetables "carrot" "lettuce"
RPOPLPUSH fruits vegetables
# 결과
# fruits 리스트 → ["cherry", "banana"]
# vegetables 리스트 → ["apple", "lettuce", "carrot"]
BLPOP / BRPOP
리스트가 비어있을 때, 값이 추가될 때까지 대기 후 꺼낸다. (블로킹)
BLPOP fruits 5 # 5초 대기 후 왼쪽 값 꺼내기
BRPOP fruits 5 # 5초 대기 후 오른쪽 값 꺼내기
# 결과: 값이 있으면 즉시 반환 / 값이 없으면 5초 동안 대기
List형 고급 명령어
LMPOP
리스트에서 여러 요소를 꺼낼 때 사용한다.
LPUSH fruits "apple" "banana" "cherry"
LPUSH vegetables "carrot" "lettuce"
LMPOP 2 fruits vegetables LEFT COUNT 3
# 결과
# "cherry", "banana", "apple"를 꺼냄
# fruits → 빈 리스트
# vegetables → ["lettuce", "carrot"]
BLMPOP
LMPOP과 동일하지만, 대기 기능이 추가된 것이다.
BLMPOP 5 2 fruits vegetables LEFT COUNT 2
# 결과
# 최대 5초 동안 대기하며 2개의 요소를 꺼냄
리스트가 비어있으면 대기했다가 데이터가 들어오면 꺼냄
LINSERT
리스트의 특정 요소 앞이나 뒤에 값을 삽입한다.
LINSERT fruits BEFORE "banana" "orange"
LINSERT fruits AFTER "banana" "grape"
# 결과
# "banana" 앞에 "orange" 추가 → ["apple", "orange", "banana", "cherry"]
# "banana" 뒤에 "grape" 추가 → ["apple", "orange", "banana", "grape", "cherry"]
LSET
리스트의 특정 인덱스 값을 변경한다.
LSET fruits 1 "mango"
# 결과: ["apple", "mango", "banana", "grape", "cherry"]
LPOS
리스트에서 특정 값의 위치 (index)를 찾는다.
LPOS fruits "banana"
# 결과: (integer) 1
LPUSHX
존재하는 리스트의 앞에만 값을 추가한다.
(리스트가 존재하지 않으면 추가하지 않는다.)
LPUSHX fruits "peach"
# 결과
# fruits가 있을 때만 "peach" 추가
# 리스트가 없으면 아무 작업도 하지 않음
RPUSHX
존재하는 리스트의 뒤쪽에만 값을 추가한다.
RPUSHX fruits "plum"
# fruits가 있을 때만 "plum"을 뒤쪽에 추가
# 리스트가 없으면 변경 없음
LMOVE
리스트 간에 데이터를 이동한다.
(방향도 지정 가능)
LMOVE fruits vegetables LEFT RIGHT
# fruits의 왼쪽 값을 꺼내서 vegetables의 오른쪽에 추가
이번에도 간략히 List형과 관련된 명령어들을 정리해봤는데,
혹시나 자주 쓰이는 다른 명령어가 있다면 언제든지 알려주세요 !🥰
반응형