object
OBJECT encoding
key에 대한 정보 조회
사용법은 OBJECT encoding key 이다.
encoding data type
- Strings: int, embstr, raw
- Lists: 버전 3.2.0 이전 ziplist(small lists), linkedlist
버전 3.2.0 부터 quicklist 하나로 통일되어 사용됨.
- Sets: intset(integers and small sets), hashtable
- Sorted Sets: ziplist(small zsets), skiplist
- Hashes: ziplist(small hashes), hashtable
Strings data type : int(integer), embstr(small string), raw
- int: value가 정수임을 나타낸다. integer, 실수(소숫점 포함)는 string으로 분류된다. 숫자가 0으로 시작하면 string이다.
예를 들어 123은 int이고 0123은 embstr이다.
- embstr: value가 string이고 44문자 이하임을 나타낸다. embedded string, embstr은 3.0부터 표시된다. 이전 버전은 raw로 표시되었다.
- raw: value가 string이고 45문자 이상임을 나타낸다.
Example Strings
명령> | set key 1234 |
결과> | OK |
명령> | object encoding key |
결과> | int |
명령> | append key Hello |
결과> | OK |
명령> | object encoding key |
결과> | embstr |
명령> | set key 01234 |
결과> | OK |
명령> | object encoding key |
결과> | embstr |
명령> | set key 12.34 |
결과> | OK |
명령> | object encoding key |
결과> | embstr |
명령> | set key 0123456789012345678901234567890123456789 |
결과> | OK |
명령> | object encoding key |
결과> | raw |
애니메이션 보기
Lists data type : ziplist(small lists), linkedlist
- ziplist: member 갯수가 512개 까지이거나, 값의 길이가 64까지는 ziplist이다.
- linkedlist: member 갯수가 513개 이상이거나, 값의 길이가 65부터는 linkedlist이다.
- 이것은 redis.conf에 list-max-ziplist-entries 512, list-max-ziplist-value 64 로 설정할 수 있다.
- 레디스 버전 3.2.0 이전에 인코딩 타입이 이 두 가지 였는데, 3.2.0 부터는
이 두 가지를 합한 quicklist 하나만 사용된다.
Example Lists: 버전 3.2.0 이전
명령> | llen mylist1 |
결과> | 512 |
명령> | object encoding mylist1 |
결과> | ziplist |
명령> | llen mylist2 |
결과> | 513 |
명령> | object encoding mylist2 |
결과> | linkedlist |
Example Lists: 버전 3.2.0 이후
명령> | rpush mylist3 value1 value2 |
결과> | (integer) 2 |
명령> | object encoding mylist3 |
결과> | quicklist |
Sets: intset(integers and small sets), hashtable
- intset: value가 모두 정수이고, member 갯수가 512개 까지 intset이다. value가 0으로 시작하거나, 소숫점을 포함하면 hashtable로 변환된다.
- hashtable: value가 string이거나, member 갯수가 513개 이상은 hashtable이다.
- 이것은 redis.conf에 set-max-intset-entries 512 로 설정할 수 있다.
Example Sets
명령> | sadd myset 1 2 3 |
결과> | 3 |
명령> | object encoding mylist1 |
결과> | intset |
명령> | sadd myset 4.1 |
결과> | 1 |
명령> | object encoding myset |
결과> | hashtable |
Sorted Sets: ziplist(small zsets), skiplist
- ziplist: member 갯수가 128개 까지이거나, 값의 길이가 64까지는 ziplist이다.
- skiplist: member 갯수가 129개 이상이거나, 값의 길이가 65부터는 skiplist이다.
- 이것은 redis.conf에 zset-max-ziplist-entries 128, zset-max-ziplist-value 64 로 설정할 수 있다.
Example Sets
명령> | zcard myzip1 |
결과> | 128 |
명령> | object encoding myzip1 |
결과> | ziplist |
명령> | zcard myzip2 |
결과> | 129 |
명령> | object encoding myzip2 |
결과> | skiplist |
Hashes: ziplist(small hashes), hashtable
- ziplist: member 갯수가 512개 까지이거나, 값의 길이가 64까지는 ziplist이다.
- hashtable: member 갯수가 513개 이상이거나, 값의 길이다 65부터는 hashtable이다.
- 이것은 redis.conf에 hash-max-ziplist-entries 512, hash-max-ziplist-value 64 로 설정할 수 있다.
Example Sets
명령> | hlen myhash1 |
결과> | 512 |
명령> | object encoding myhash1 |
결과> | ziplist |
명령> | hlen myhash2 |
결과> | 513 |
명령> | object encoding myhash2 |
결과> | hashtable |
명령문
OBJECT encoding key
- 이 명령은 version 2.2.3 부터 사용할 수 있다.
- 논리적 처리 소요시간 : O(1)