Redis 명령어와 데이터 구조 활용

gclee·2024년 2월 8일
0

Redis

목록 보기
3/5
post-thumbnail

해시, 세트, 정렬 세트, 리스트 등 Redis의 고급 데이터 구조를 다루는 명령어와 그 사용법에 대해 알아보겠습니다.

해시(Hash)

해시는 필드와 값의 쌍으로 구성된 데이터 구조입니다. 객체를 저장하는 데 유용합니다.

HSET: 해시에 필드와 값을 설정합니다.

HSET myhash field1 "Hello"

HGET: 해시에서 필드의 값을 검색합니다.

HGET myhash field1

HGETALL: 해시의 모든 필드와 값의 쌍을 검색합니다.

HGETALL myhash

HDEL: 해시에서 하나 이상의 필드를 삭제합니다.

HDEL myhash field1

세트(Set)

세트는 중복을 허용하지 않는 문자열의 집합입니다. 멤버의 유일성을 보장합니다.

SADD: 세트에 하나 이상의 멤버를 추가합니다.

SADD myset "Hello"

SMEMBERS: 세트의 모든 멤버를 검색합니다.

SMEMBERS myset

SISMEMBER: 멤버가 세트의 일부인지 확인합니다.

SISMEMBER myset "Hello"

SREM: 세트에서 하나 이상의 멤버를 삭제합니다.

SREM myset "Hello"

교집합 (SINTER)

두 개 이상의 세트 간의 교집합을 구합니다.

SINTER key1 key2

합집합 (SUNION)

두 개 이상의 세트 간의 합집합을 구합니다.

SUNION key1 key2

차집합 (SDIFF)

두 개 이상의 세트 간의 차집합을 구합니다. 첫 번째 세트에서만 존재하고 나머지 세트에는 존재하지 않는 요소를 반환합니다.

SDIFF key1 key2

STORE 명령어

SINTER, SUNION, SDIFF 연산의 결과를 새로운 키에 저장하고 싶을 때 STORE 옵션을 사용할 수 있습니다.

교집합 저장 (SINTERSTORE)

SINTERSTORE destination key1 key2

합집합 저장 (SUNIONSTORE)

SUNIONSTORE destination key1 key2

차집합 저장 (SDIFFSTORE)

SDIFFSTORE destination key1 key2

destination은 연산 결과를 저장할 새로운 키입니다. 이 명령어는 연산 결과로 생성된 세트의 요소 수를 반환합니다.

예시

세 개의 세트 set1, set2, set3가 있다고 가정하겠습니다.

  • set1: "a", "b", "c"
  • set2: "b", "c", "d"
  • set3: "c", "d", "e"

이 세트들을 사용하여 다음과 같은 연산을 수행할 수 있습니다.

SINTER set1 set2 set3

위 명령어는 세 세트 모두에 존재하는 요소 "c"를 반환합니다.

SUNIONSTORE result set1 set2 set3

위 명령어는 세 세트의 합집합을 result 키에 저장하고, 저장된 요소의 수를 반환합니다.

정렬 세트(Sorted Set)

정렬 세트는 멤버마다 고유한 점수를 가지며, 점수에 따라 정렬된 순서로 멤버를 저장합니다.

ZADD: 정렬 세트에 멤버를 추가합니다.

ZADD myzset 1 "one"

ZRANGE: 점수 범위에 따라 정렬 세트의 멤버를 검색합니다.

ZRANGE myzset 0 -1 WITHSCORES

ZREM: 정렬 세트에서 하나 이상의 멤버를 삭제합니다.

ZREM myzset "one"

ZSCORE: 멤버의 점수를 검색합니다.

ZSCORE myzset "one"

리스트(List)

리스트는 순서가 있는 문자열의 집합입니다. 스택 또는 큐로 사용할 수 있습니다.

LPUSH: 리스트의 시작 부분에 하나 이상의 값을 삽입합니다.

LPUSH mylist "world"

RPUSH: 리스트의 끝 부분에 하나 이상의 값을 삽입합니다.

RPUSH mylist "hello"

LPOP: 리스트의 시작 부분에서 값을 제거하고 반환합니다.

LPOP mylist

RPOP: 리스트의 끝 부분에서 값을 제거하고 반환합니다.

RPOP mylist

LRANGE: 리스트의 특정 범위의 요소를 검색합니다.

LRANGE mylist 0 -1

0개의 댓글