강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

SJ님의 프로필 이미지
SJ

작성한 질문수

초당 500,000+건 트래픽을 처리하는 카카오 면접관의 Redis

String보다 메모리 효율적일 수 있는 Redis Hash

Redis Hash

해결된 질문

작성

·

42

1

강의 내용을 듣고 생각했을때 ,

대부분의 경우 Redis String 보다 Redis Hash 사용하는게 대부분 이득일것 같다

생각이 들던데...

어떻게 사용하고 계시나요 ??

 

사실 저는 Redis String 으로 Json 으로 많이 사용했었습니다.

그리고 큰 장애를 경험하지 못했는데요

아무래도 트래픽에 대한 차이인것 같네요

답변 1

1

Hong님의 프로필 이미지
Hong
지식공유자

음.. 어떤 관점으로 보냐에 따라서 다를꺼같습니다.

 

일단 당연하게도 일반적인 상황에서는 String을 주로 사용하니깐 그냥 그대로 사용하셔도 됩니다. 하지만 음... 기준을 좀 잡아보자면 이런 조건에서는 Hash가 유리할꺼같아요.

  • 객체 필드 일부만 업데이트할 때 (HSET user:1 age 26)

  • 필드가 많고 부분 조회가 잦을 때

  • 메모리 절약이 중요할 때 (ziplist 인코딩 덕분에 작은 Hash는 매우 효율적)

 

그래서 사실상 트래픽이 낮을 떄를 기준으로 한다면 둘은 차이가 거의 없어요. 일반적으로 이런 서비스의 병목은 사용하시는 Redis의 타입보다는 네트워크 왕복횟수나 들어가는 키의 설계에서 옵니다.

 

그래서 뭐 기본적으로 String + Json을 사용한다고 잘못되었다고 말하는거 자체가 잘못된겁니다. 그렇게 사용하셔도 무방하고 앞서 제가 기준을 잡았던 기준들에 대해서 저런 상황이 발생한다면, 그떄 한번 사용해보시는것을 고려해보시는게 어떨까싶습니다.

SJ님의 프로필 이미지
SJ

작성한 질문수

질문하기