Redis에서 목록 사용하기

Redis에서 목록 사용하기

2022-06-04 last update

6 minutes reading Redis
Redis의 목록은 삽입 순서대로 정렬된 문자열 값의 집합입니다.Redis에서는 하나의 목록에 최대 40억 개의 요소를 수용할 수 있습니다.Redis는 헤드와 테일의 개념을 사용하여 목록을 관리합니다. 이 안내서에서 소개합니다.
이 설명서를 사용하면 Redis에서 생성, 삽입 및 삭제 값을 포함하여 목록을 사용하는 방법을 학습합니다.
이 설명서에서 최신 버전의 Redis에서 모든 명령을 테스트했습니다.또한 Redis CLI를 사용하는 것이 좋습니다.이렇게 하면 최대 호환성을 확보하고 이 안내서의 출력과 유사한 출력을 볼 수 있습니다.

기초 지식 - Redis에서 목록 만들기


Redis에서 목록을 만드는 것은 단순한 키와 값 쌍만 만드는 것이 아닙니다.주의해야 할 것은 키 하나에 목록만 저장할 수 있다는 것이다.
위에서 말한 바와 같이, Redis는 헤드와tail 또는left와right의 개념을 사용하여 목록을 관리합니다.
목록에 항목을 추가할 수 있는 두 가지 방법이 있습니다.
  • LPUSH
  • RPUSH
  • LPUSH 명령은 목록의 머리(또는 왼쪽)에 지정된 새 요소를 추가합니다.한편, RPUSH 명령은 지정한 목록의 끝부분 (또는 오른쪽) 에 새로운list 요소를 추가합니다.
    두 개의 주 명령을 사용하여 새 목록을 만들거나 기존 목록에 항목을 추가할 수 있습니다.
    우리 몇 가지 예를 들자.
    데이터베이스라고 하는 간단한 목록을 만들려면 다음 명령을 사용합니다.
    127.0.0.1:6379> LPUSH databases mongodb
    
    (integer) 1
    참고: RPUSH를 사용하여 동일한 작업을 수행할 수도 있습니다.
    LPUSH 및 RPUSH 명령은 목록의 요소 수를 나타내는 정수 값을 반환합니다.
    다음 예를 들어 목록에 더 많은 요소를 추가합니다.
    127.0.0.1:6379> LPUSH databases mongodb
    
    127.0.0.1:6379> LPUSH databases Redis
    
    127.0.0.1:6379> RPUSH databases PostgreSQL
    
    127.0.0.1:6379> RPUSH databases MySQL
    
    127.0.0.1:6379> LPUSH databases CockroachDB
    
    (integer) 5
    한 명령에 여러 항목을 목록에 추가할 수 있습니다.예를 들어, 위의 명령을 다음으로 바꿀 수 있습니다.
    127.0.0.1:6379> LPUSH databases MongoDB Redis PostgreSQL MySQL CockroachDB
    
    (integer) 5
    RPUSH 명령에도 동일합니다.
    Redis는 LPUSHX 및 RPUSHX 명령도 제공합니다.그것들의 사용은 LPUSH 및 RPUSH 명령과 유사하다.그러나 목록을 만들 수 없습니다.이 키는 LPUSHX 및 RPUSHX 명령을 사용하여 요소를 삽입하기 전에 있어야 합니다.
    127.0.0.1:6379> RPUSHX databases Firestore
    
    127.0.0.1:6379> LPUSHX databases MariaDB

    목록 항목 업데이트


    Redis 목록에서 항목의 값을 수정하려면 LSET 명령을 사용합니다.이 명령은 목록, 업데이트할 이전 요소의 인덱스, 새 값을 가져옵니다.
    예를 들어, 색인 0의 항목 값을 변경하려면 다음과 같이 하십시오.
    127.0.0.1:6379> LSET databases 0 SQLite
    
    OK
    명령이 성공적으로 실행되면 "OK"문자열이 반환됩니다.

    목록에서 요소 추출


    목록에서 항목을 추출하려면 LRANGE 명령을 사용합니다.이 명령은 색인을 시작하고 중지하며 지정된 범위 내의 값을 되돌려줍니다.
    예:
    127.0.0.1:6379> LRANGE databases 0 5
    
    1) "SQLite"
    
    2) "CockroachDB"
    
    3) "MySQL"
    
    4) "PostgreSQL"
    
    5) "Redis"
    
    6) "MongoDB"
    음수 범위를 사용할 수 있습니다.예를 들어 -1은 목록의 마지막 원소를 나타내고, -4는 네 번째 원소를 나타낸다.
    예:
    127.0.0.1:6379> LRANGE databases -4 -1
    
    1) "PostgreSQL"
    
    2) "Redis"
    
    3) "MongoDB"
    
    4) "Firestore
    목록에 있는 단일 요소를 가져오려면 LINDEX 명령을 사용하고 가져올 항목의 대상 인덱스를 따라가십시오.
    예:
    127.0.0.1:6379> LINDEX databases 2
    
    "MySQL"
    인덱스는 0부터 시작하는 것을 기억하십시오.
    목록에 있는 항목 수를 알고 싶으면 LLEN 명령을 사용합니다.
    127.0.0.1:6379> LLEN databases
    
    (integer) 7
    이 명령은 목록의 항목 수를 나타내는 정수를 되돌려줍니다.

    목록에서 항목 삭제


    목록에서 항목을 삭제하려면 LREM 명령을 사용합니다.이 명령은 계수와 삭제할 값을 가져옵니다.
    기본적으로 이 명령은 특정 패턴과 일치하는 첫 번째 참조를 삭제합니다.
    127.0.0.1:6379> LREM databases 1 MySQL
    LPOP 및 RPOP 명령을 사용하여 목록에서 항목을 제거할 수도 있습니다.이 명령은 목록의 맨 왼쪽과 맨 오른쪽에 있는 요소를 삭제합니다.
    127.0.0.1:6379> LPOP databases
    
    "SQLite"
    
    127.0.0.1:6379> RPOP databases
    
    "Firestore"
    이 두 명령은 모두 삭제된 항목의 값을 삭제하고 되돌려줍니다.

    닫는 중


    이 설명서를 통해 Redis에서 목록을 사용하는 방법을 학습했습니다.목록 명령과 작업 방식에 대한 자세한 내용을 보려면 문서를 볼 수 있습니다.
    읽어주셔서 감사합니다.🙂