반응형
레디스 객체(Redis Object)에 대해서...
- Redis 는 저장된 데이터를 관리하기 위하여 redisObject 객체를 사용함.
- 문자열데이터와 Hash 데이터는 모두 redisObject 객체를 사용하여 저장함.
- redisObject 가 관리하는 정보
- 저장된 객체의 데이터형과 인코딩 정보
- 객체가 참조된 횟수
- LRU(Least Recently Used) 시간 정보
- redisObject 가 관리하는 정보
- 레디스객체는 레디스의 거든 모든 소스코드에서 사용됨.
- 저장된 모든 데이터와 Key 의 표현에 사용됨.
- 레디스에서 가장 기본적인 데이터 표현 방식이고, 레디스의 내부구조를 이해하기 위해서 가장 중요한 객체이기도함.
- redisOjbect 구조체(Redis-5.0.5 기준)
- 콜론(:) 기호 란?
- 위의 소스에서 콜론 기호는 C 언어의 구조체에서 사용하는 비트 필드 표기 방식으로서 할당된 데이터형을 콜론 기호 뒤의 숫자에 해당하는 길이만큼 사용하는 것
- 비트 필드는 주어진 크기의 데이터를 비트 단위로 잘라서 사용할 수 있기 때문에 제한된 공간에 여러가지 정보를 저장할 수 있는 장점이 있음.
- 여기서는 32bit 크기의 변수를 각각 4,4,24 bit 만큼 할당하여 3개의 변수로 사용함.
- 4+4+24 = 32bit
- 변수 refcount 와 *ptr은 운영체제에서 사용하는 포인터의 크기로 저장됨.
- 즉, 결론적으로 32bit 체계에서 redisObject 크기는 96bit(12byte)로 볼 수 있음.
- 여기서 잠깐! C언어 포인터 표현방식(*)에 대해서 알아볼께요..^^;
- 운영체제의 bit 에 따라서 아래와 같이 크기가 달라짐.
- 32bit
- 4byte
- 64bit
- 8byte
- 즉 64bit 운영체제에서는 32bit 운영체제에 비해서 주소를 표시하기 위해서 더 많은 메모리가 필요해짐.
- 32bit
- 운영체제의 bit 에 따라서 아래와 같이 크기가 달라짐.
- 여기서 잠깐! C언어 포인터 표현방식(*)에 대해서 알아볼께요..^^;
- redisObjet 필드 소개
- type
- redis 에 저장된 객체의 데이터형을 나타냄.
- server.h 헤더파일 참조
- redis 에 저장된 객체의 데이터형을 나타냄.
- type
- encoding
- redis 객체에 저장된 데이터의 인코딩 타입을 나타냄.
- server.h 헤더파일 참조
- lru
- 저장된 데이터의 LRU 시간 정보를 나타냄.
- refcount
- 객체가 참조된 횟수 정보를 나타냄.
- *ptr
- 실제 데이터가 저장된 위치 정보를 가리키는 포인터임. 즉 데이터가 저장된 메모리의 주소.
- 데이터 저장 & 디버그 명령 실행 예시
- debug object 명령
- 지정된 key 의 상세 정보를 출력 함.
- redisObject 에 저장된 인코딩 정보
- 객체 참조횟수
- lru 시간에 대한 정보
- 지정된 key 의 상세 정보를 출력 함.
결론
- Redis 에는 저장된 데이터를 관리하기 위하여 redisObject 객체를 사용함
- redisObject 객체의 정보를 보기위해서는 아래 명령을 사용하면 됨.
- debug object [key]
- 레디스를 사용자의 관점으로서 사용하기만 했었는데, 직접 돋보기(?) 들고 소스를 분석해보니 더욱 재미있는 오픈소스인듯..^^;
- 오늘도 Redis 마술(?) 하나 습득완료..^^;
- 금일의 명언 한마디
- 부동산 정책은 규제와 완하가 반복된다. 추후 완화 시점이 도래하면 싸게 구입한 만큼 가격 상승분을 고스란히 수익으로 챙길 수 있으므로 매우 유용한 투자 방법이다. - 신형강(부룡)지음, "부동산투자이렇게쉬웠어?" 중에서...
- 금일의 영어 한마디
- 질문) Jimmy is due back any minute.
- 지미가 돌아올 때가 되었는데..
- 응답) Don't worry, I'm sure everything's OK.
- 걱정할 거 없어요, 설마 별 일 있을라고..
- 해설
- due back(=supposed to come back) 은 "이젠 돌아올 때라고 생각한다"
- supposed를 사용하면 보다 간절한 심정이 담긴 표현이 됨.
- due는 "예정된 시기"를 나타냄.
- due back(=supposed to come back) 은 "이젠 돌아올 때라고 생각한다"
- 질문) Jimmy is due back any minute.
728x90
300x250
'좋아하는 것_매직IT > 9.redis' 카테고리의 다른 글
20.Redis, 레디스 인코딩 중 리스트 데이터 인코딩 에 대해서 알아볼께요.^^ (0) | 2021.01.14 |
---|---|
19.Redis, 레디스 인코딩 중 문자열 데이터 인코딩 에 대해서 알아볼께요.^^ (0) | 2021.01.14 |
17.Redis, 제디스(Jedis) 사용한 간단한 프로그램 예시를 코딩해 볼께요.^^ (0) | 2021.01.14 |
16.Redis, 송/수신 프로토콜에 대해서 알아볼께요.^^ (0) | 2021.01.14 |
14.Redis, Key 관리 명령에 대해서 알아볼께요.^^ (0) | 2021.01.14 |