해시, 세트, 정렬 세트, 리스트 등 Redis의 고급 데이터 구조를 다루는 명령어와 그 사용법에 대해 알아보겠습니다.
해시는 필드와 값의 쌍으로 구성된 데이터 구조입니다. 객체를 저장하는 데 유용합니다.
HSET: 해시에 필드와 값을 설정합니다.
HSET myhash field1 "Hello"
HGET: 해시에서 필드의 값을 검색합니다.
HGET myhash field1
HGETALL: 해시의 모든 필드와 값의 쌍을 검색합니다.
HGETALL myhash
HDEL: 해시에서 하나 이상의 필드를 삭제합니다.
HDEL myhash field1
세트는 중복을 허용하지 않는 문자열의 집합입니다. 멤버의 유일성을 보장합니다.
SADD: 세트에 하나 이상의 멤버를 추가합니다.
SADD myset "Hello"
SMEMBERS: 세트의 모든 멤버를 검색합니다.
SMEMBERS myset
SISMEMBER: 멤버가 세트의 일부인지 확인합니다.
SISMEMBER myset "Hello"
SREM: 세트에서 하나 이상의 멤버를 삭제합니다.
SREM myset "Hello"
두 개 이상의 세트 간의 교집합을 구합니다.
SINTER key1 key2
두 개 이상의 세트 간의 합집합을 구합니다.
SUNION key1 key2
두 개 이상의 세트 간의 차집합을 구합니다. 첫 번째 세트에서만 존재하고 나머지 세트에는 존재하지 않는 요소를 반환합니다.
SDIFF key1 key2
SINTER
, SUNION
, SDIFF
연산의 결과를 새로운 키에 저장하고 싶을 때 STORE
옵션을 사용할 수 있습니다.
SINTERSTORE destination key1 key2
SUNIONSTORE destination key1 key2
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
키에 저장하고, 저장된 요소의 수를 반환합니다.
정렬 세트는 멤버마다 고유한 점수를 가지며, 점수에 따라 정렬된 순서로 멤버를 저장합니다.
ZADD: 정렬 세트에 멤버를 추가합니다.
ZADD myzset 1 "one"
ZRANGE: 점수 범위에 따라 정렬 세트의 멤버를 검색합니다.
ZRANGE myzset 0 -1 WITHSCORES
ZREM: 정렬 세트에서 하나 이상의 멤버를 삭제합니다.
ZREM myzset "one"
ZSCORE: 멤버의 점수를 검색합니다.
ZSCORE myzset "one"
리스트는 순서가 있는 문자열의 집합입니다. 스택 또는 큐로 사용할 수 있습니다.
LPUSH: 리스트의 시작 부분에 하나 이상의 값을 삽입합니다.
LPUSH mylist "world"
RPUSH: 리스트의 끝 부분에 하나 이상의 값을 삽입합니다.
RPUSH mylist "hello"
LPOP: 리스트의 시작 부분에서 값을 제거하고 반환합니다.
LPOP mylist
RPOP: 리스트의 끝 부분에서 값을 제거하고 반환합니다.
RPOP mylist
LRANGE: 리스트의 특정 범위의 요소를 검색합니다.
LRANGE mylist 0 -1