Redis의 자료구조 String과 Hash 비교
STRING
👍 장점
- 개별 필드에 대한 접근이 간단하다.
- 필요한 필드만 메모리에 로드할 수 있다.
- 키-값 쌍으로 간단하게 데이터 관리 가능
- 각
STRING이 독립적이기 때문에 특정 필드에 대한 읽기 및 쓰기 연산이 독립적으로 수행된다.
👎 단점
- 각
STRING 키에 대한 메모리 오버헤드가 발생한다.
- 데이터 일관성을 유지하기 어려울 수 있다.
(트랜잭션 없이 원자성을 유지하기 어렵다..)
HASH
👍 장점
- 메모리 사용 효율성이 좋다.
- 사실 어떻게 사용하느냐에 따라 다를 것이다.
- 여러 필드를 하나의
HASH에 저장하면 전체 데이터 관리가 용이해진다.
HGET, HSET등으로 특정 필드에 접근할 수 있으며 일괄 처리도 쉽게 가능하다.
- 데이터 일관성을 유지하기 용이하다.
👎 단점
- 특정 필드만 자주 접근하는 경우 모든 필드를 저장한
HASH보다 개별 STRING이 더 효율적일 수 있다.
HASH가 아주 커지면 Redis의 단일 스레드 구조에서 병목이 될 가능성이 있다.