베이스 레디 스의 NO.1 (내부 데이터 구조 및 인코딩)

하나 : 글로벌 명령

1, 모든 키를 확인 : 키 * O 시간 복잡도 (N)

2 키의 총 수 : dbsize는 시간 복잡도는 O (1)

키가 존재하는지 여부를 3, 검사 :, 그렇지 않으면 0을 반환, 반환 1 키가 존재

4, 삭제 키 : 델 키를 성공적으로 삭제 키의 수는, 그렇지 않으면 0, 반환됩니다. 여러 키의 삭제를 지원

5 키가 만료 : 키 초 만료 

TTL 명령은 키의 남은 만료 시간을 반환, 반환 값은 세 가지가 있습니다

같거나 0보다 정수 : 키 잔여 유효 시간.

-1 : 키 만료 시간을 설정하지 않은

-2 : 결합 부재

6 종류의 키 데이터 구조 : 입력 키. 키가 존재하지 않는 경우, 아무도는 반환되지 않습니다

 

II는 : 내부 데이터 구조 및 부호화에 대응

1, 문자열 : 원시, INT, embstr

2, 해시 : 해시 테이블, ziplist

3 : 목록 : LinkedList의, ziplist

4 : 설정 : 해시 테이블, intset

5 : ZSET : skiplist, ziplist

혜택을 디자인 :

1 : 내부 및 외부 데이터 구조 등을 향상시킬 수있는 부호화 명령은 아무런 효과가 없다

2 : 내부 코딩 다양한 구현들은 메모리를 절약하기 위해 더 ziplist 같은 다른 시나리오에서 강점으로 재생할 수 있지만, 성능이 장기간리스트 요소를 삭제한다 후 레디 스 메모리 LinkedList의 유형에 대한 구성 옵션의 변환리스트에 따라 구현 될

 

세 가지 : 단일 스레드 아키텍처

높은 성능을 달성하기 위해 단일 스레드 아키텍처를 사용하여 IO 다중화 서비스 모델 레디 스

장점 :

도 1에서, 메모리 액세스는, 약 100 나노초 메모리의 길이에 대응하여, 메모리에 데이터를 모두 레디 스. 이것은 또한 수준 액세스 중요한 기초 당 만 회에 도달 할 때 빨간색

2, IO 비를 차단, IO 레디 스이 기술을 다중화로는 epoll을 사용하여 구현, 플러스 자체 이벤트 모델 레디 스의는 epoll은 IO를 읽기 및 쓰기 이벤트를 닫 변환되고, 네트워크가 시간을 낭비하지 않는 연결

(3) 생성 된 단일 스레드 및 스레드 스위칭 레이스의 소모를 방지 할

 

IV : 데이터 구조의 오가지

일반적인 명령

1 설정 값 : 설정 키 값 [예 초] PX 밀리] NX | XX] 

SETEX, setnx, sexxx, 세트 PX

를 참조 할 수 있습니다 특정 사용 사례 :

http://doc.redisfans.com/string/set.html

 

 

 

 

게시 50 개 원래 기사 · 원 찬양 2 · 조회수 2,302

추천

출처blog.csdn.net/eafun_888/article/details/100513580