2022. 2. 27. 15:59ㆍTIL💡/Database
레디스에서 모든 데이터 타입은 메모리를 저장하거나 성능을 높이는 다양한 인코딩을 사용할 수 있다.
예를 들어 단지 숫자만 갖는 문자열은 다른 인코딩을 사용하기 때문에 글자만 갖는 문자열보다 메모리를 덜 사용한다.
데이터 타입은 레디스 서버 설정에 정의된 임계값을 기반으로 다양한 인코딩을 사용한다.
레디스를 다운로드하면, redis.config라는 파일을 통해 설정값을 변경할 수 있고 커맨드라인을 통해 설정을 간단하게 바꿀 수 있다.
$ redis-server --hash-max-ziplist-entries 3 --hash-max-ziplist-value 5 --list-max-ziplist-entries 3 --list-max-ziplist-value 5 --set-max-intset-entries 3 --zset-max-ziplist-entries 3 --zset-max-ziplist-value 5
문자열
다음은 문자열에서 사용 가능한 인코딩 정보다.
📌 int
64비트 부호 있는 정수로 문자열을 표현할 때
📌 embstr
40바이트보다 작은 문자열을 표현할 때
📌 raw
40바이트보다 큰 문자열을 표현할 때
리스트
다음은 리스트에서 사용 가능한 인코딩 정보다.
📌 ziplist
리스트 크기의 엘리먼트가 list-max-ziplist-entries 설정보다 작고, 리스트의 개별 엘리먼트의 바이트가 list-max-ziplist-value 설정보다 작을 때
📌 linked list
리스트 크기의 엘리먼트가 list-max-ziplist-entries 설정보다 크거나, 리스트의 개별 엘리먼트의 바이트가 list-max-ziplist-value 설정보다 클 때
셋
셋에서 사용 가능한 인코딩은 다음과 같다.
📌 intset
셋의 모든 엘리먼트가 정수고, 셋의 개수가 set-max-intset-entries 설정보다 작을 때
📌 hashtable
셋의 엘리먼트 중 하나라도 정수가 아니거나, 셋의 개수가 set-max-intset-entries 설정보다 클 때
해시
📌 ziplist
해시의 필드 개수가 hash-max-ziplist-entries 설정보다 작고, 해시의 필드 이름과 값이 hash-max-ziplist-value 설정보다 작을 때
📌 hashtable
해시의 필드 개수가 ash-max-ziplist-entries 설정보다 크거나, 해시의 필드 값 중 하나라도 hash-max-ziplist-value 설정보다 클 때
정렬된 셋
📌 ziplist
정렬된 셋의 개수가 set-max-ziplist-entries 설정보다 작고, 정렬된 셋의 엘리먼트 값이 모두 zset-max-ziplist-value 설정보다 작을 때
📌 skiplist
정렬된 셋의 개수가 set-max-ziplist-entries 설정보다 크거나 정렬된 셋의 엘리먼트 값 중 하나라도 zset-max-ziplist-value 설정보다 클 때
'TIL💡 > Database' 카테고리의 다른 글
[SQL] FROM절 JOIN 형태 (0) | 2022.03.29 |
---|---|
[EF Core]Entity Framework core (0) | 2022.03.13 |
[Redis] 다양한 커맨드와 기능 소개 (0) | 2022.02.27 |
[Redis] 데이터타입 실습2 (0) | 2022.02.27 |
[Redis] Redis 학습 및 데이터 타입 실습1 (0) | 2022.02.26 |