[Redis] HSET vs SET

redis 2015. 1. 9. 11:53

멀까 뭘써야할까?

SET은 그냥 키 벨류

HSET은 키 하나에 여러개를 쪼개서 넣을 수 있다.

예를 들어 유저 id를 Hash키로 잡고 {nickname: 'John', age:35}  이렇게 id에 국한된 데이터를 한데 저장할 수 있다.

검색을 해보면 계산시간에 대해 다음과 같은 말도 있다.

SET은 키 문자열 그대로 저장하고 써서 찾아내는 CPU 계산 시간이 빠르다.
HSET은 키 문자열을 한번 짧은 길이로 바꿔서 저장하기 때문에 요고 맵핑하는 계산이 한번 더 들어간다. 그러나 이 시간은 최대 ziplist(키 encode/decode할때 쓰는 code리스트 인듯) 크기만큼 든다. 

키를 겁네 많이 저장해놓고 쓰는 경우가 많아서 메모리를 효율적으로 쓰기위해선 HSET을 쓰는게 좋다. 라고 생각할 수도 있겠지만 결국은 "어떤 자료구조를 쓸 것인가"가 중요하다고 한다.

그냥 키 벨류한쌍이 필요한 거면 SET을 쓰고, 위와같이 ID에 묶여있는 정보들을 쓸거면 HSET을 쓰고.


Reference

1. http://stackoverflow.com/questions/12779372/hset-vs-set-memory-usage

2. http://grokbase.com/t/gg/redis-db/12a89re9n7/hset-vs-set-memory-usage

'redis' 카테고리의 다른 글

zscore list copy  (0) 2016.10.12
redis sentinel  (0) 2015.11.30
블로그 이미지

시간을 거스르는자

ytkang86@gmail.com

,