List
- 이중 연결 형태이다.
- 저장할 요소가 많다면 리스트 사용을 자제하는 것이 좋다.
- set과 마찬가지로 SORT 명령어를 적용할 수 있다.
[LPUSH, RPUSH] <key> <value>
- L은 왼쪽, R은 오른쪽을 뜻하며 왼쪽 또는 오른쪽에서 <key>에 <value>를 넣는다는 의미이다.
- 출력 값으로는 <key>에 저장된 현재 요소의 개수이다.
LLEN <key> : <key>안에 들어있는 요소의 개수를 출력해준다.
LINDEX <key> <num>
- zero-based index로 <key>의 <num>인덱스에 있는 요소의 값을 출력해준다.
- <num>에 음수값을 주면 역방향으로 출력된다. -1이 가장 끝에 있는 요소를 가리킨다.
LRANGE <key> <num1> <num2> : <num1>과 <num2>를 포함한 인덱스에 있는 요소를 출력해준다. 이 때도 음수의 값을 사용할 수 있다.
LPOS <key> <num>
- <key>에서 <num>에 해당하는 값을 가진 요소의 index를 출력해준다.
- 옵션으로 RANK <num>을 줄 수 있는데, 이는 <num>번 째 값의 위치를 출력해달라는 의미이다.
- 옵션으로 COUNT <num>을 줄 수 있는데, 이는 발견된 순서대로 <num>개의 요소의 위치를 출력해달라는 의미이다. 즉, 배열을 반환한다.
- 옵션으로 MAXLEN <num>을 줄 수 있는데, 이는 첫 요소를 포함한 <num>개에서의 요소를 찾아달라는 의미이다. 예를 들어 <num>이 5개면 처음을 포함한 5개의 요소 중에서 인덱스 위치를 찾아달라는 의미이다.
[LPOP, RPOP] <key> {<num>} : <num>을 생략하면 각각 방향에서 한 요소를 제거하고, <num>을 명시하면 <num> 개수만큼 요소를 제거한다.
LSET <key> <num1> <num2> : <num1> 인덱스에 위치한 요소의 값을 <num2>로 변경해준다.
LTRIM <key> <num1> <num2> : <num1>과 <num2>를 포함한 인덱스 사이에 있는 값을 제거하고 모든 요소를 제거한다.
LINSERT <key> <direction> <num1> <num2>
- direction으로는 BEFORE, AFTER 값이 있다. BEFORE면 그 전, AFTER면 그 이후를 말한다. 예를 들어 3 위치에서 BEFORE일 때 2인 위치에 값을 삽입한다.
- <num1>값(index아님)이 있는 위치를 찾고 <direction>에 따른 위치에 <num2>를 넣는다.
LREM <num1> <num2>
- <num1>의 경우 양수, 음수, 0의 값이 나올 수 있는데, 이 때 0은 방향없이 모든 <num2>를 제거하라는 의미이다.
- <num1>이 양수일 때는 왼쪽에서 부터 오른쪽으로 <num1>값 만큼 <num2>를 제거하라는 의미이다.
- <num1>이 음수일 때는 반대 방향으로 같은 일을 한다.
'Database > Redis' 카테고리의 다른 글
Lua Script in redis (0) | 2024.11.05 |
---|---|
Lock으로 동시성 관리하기 (with. redis) (0) | 2024.10.17 |
HyperLogsLogs 타입 명령어 (0) | 2024.10.09 |
관계형 데이터 사용 in redis(feat. SORT) (0) | 2024.10.07 |
Sorted Set 타입 명령어 (0) | 2024.10.07 |