대용량 처리 이해/Redis

Redis Data Type

훈지런 2023. 2. 14. 18:30

Strings

  • 가장 기본적인 데이터 타입
  • 바이트 배열을 저장
  • 바이너리로 변관할 수 있는 모든 데이터를 저장 가능
  • 최대크기 = 512MB
명령어 기능 예제
SET 특정 키에 문자열 값을 저장 SET say hello
GET 특정 키에 문자열 값을 부름 GET say
INCR 특정 키에 값을 Integer로 취급하며 1증가 INCR mycount
DECR 특정 키에 값을 Integer로 취급하며 1증가 DECR mycount
MSET 여러 키에 대한 값을 한번에 저장 MSET key1 value1 key2 value2
MGET 여러 키에 대한 값을 한번에 부름 MGET key1 key2

Lists

  • Linked-list 형태의 자료구조
  • Queue와 Stack으로 사용할수있음
명령어 기능 예제
LPUSH 리스트 왼쪽에 새로운 값 추가 LPUSH mylist apple
RPUSH 리스트 오른쪽에 새로운 값 추가 RPUSH mylist banana
LLen 리스트에 들어있는 아이템 개수를 반환 LLEN mylist
LRANGE 리스트의 특정 범위를 반환 LRANGE 0 -1
LPOP 리스트 왼쪽에서 값을 삭제하고 반환 LPOP mylist
RPOP 리스트 오른쪽에서 값을 삭제하고 반환 RPOP mylist

Sets

  • 검색이 빠름
  • 개별 접근을 위한 인덱스가 없고 집합 연산이 가능(교집합, 합집합 등)
명령어 기능 예제
SAAD Set에 데이터 추가 SAAD myset apple
SREM Set에 데이터 삭제 SREM myset apple
SCARD Set에 저장된 아이템 개수를 반환 SCARD myset
SMEMBERS Set에 저장된 아이템들을 반환 SMEMBERS myset
SISMEMBER 특정값이 Set에 포함되어 있는지를 반환 SISMEMBER myset apple

Hashes

  • 하나의 Key 하위에 여러개의 filed-value 쌍을 저장
명령어 기능 예제
HSET 한개 또는 다수의 필드에 값을 지정 HSET user1 name lhj age 36
HGET 특정 필드의 값을 반환 HGET user1 name
HMGET 한개 이상의 필드 값을 반환 HMGET user1 name age
HINCRBY 특정 필드의 값을 Integer로 취급하여 지정한 숫자를 증가 HINCRBY user1 viewcount 1
HDEL 한개 이상의 필드를 삭제 HDEL user1 age

SortedSets

  • Set과 유사하게 유니크한 값의 집합
  • 각 값은 연관된 score를 가지고 정렬되어있음
  • 정렬된 상태이기에 빠르게 최소/최대값을 구할수있음
  • 순위 계산, 리더보드 구현등에 활용
명령어 기능 예제
ZADD 한개 또는 다수의 값을 추가 또는 업데이트 ZADD myrank 10 apple 20 banana
ZRANGE 특정 범위의 값을 반환(오름차순 정렬) ZRANGE myrank 0 1
ZRANK 특정 값의 위치(순위)를 반환(오름차순 정렬) ZRANK myrank apple
ZREVRANK 특정 값의 위치(순위)를 반환(내림차순) ZREVRANK myrank apple
ZREM 안개 이상의 값을 삭제 ZREM myrank apple

bitmaps

  • 비트 백터를 사용해 N개의 Set을 공간 효율적으로 저장
  • 비트연산 가능
명령어 기능 예제
SETBIT 비트맵의 특정 오프셋에 값을 변경 SETBIT visit 10 1
GETBIT 비트맵의 특정 오프셋의 값을 반환 GETBIT visit 10
BITCOUNT 비트맵에서 SET(1) 상태인 키트의 개수를 반환 BITCOUNT visit
BITOP 비트맵들간의 비트 연산을 수행하고 결과를 비트맵에 저장 BITOP AND result today yesterday

HyperLogLog

  • 유니크한 값의 개수를 효율적으로 얻을수 있음
  • 확률적 자료구조로서 오차가 있을수있고, 매우 큰 데이터를 다룰때 사용
명령어 기능 예제
PFADD HyperLogLog에 값들을 추가 PFADD visit Jay Perter Jane
PFCOUNT HyperLogLog에 입력된 값들의 cardinality(유일값의 수)를 반환 PFCOUNT visit
PFMERGE 다수의 HyperLogLog를 병합 PFMERGE result visit1 visit2

'대용량 처리 이해 > Redis' 카테고리의 다른 글

Pub, Sub 패턴  (0) 2023.02.20
Redis Cache Layer  (0) 2023.02.19
Redis Session Clustering  (0) 2023.02.18
Redis (Remote Dictionary Server)  (0) 2023.02.13