멀까 뭘써야할까?
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 |