이글은 redis 코드에 기여하기위해 간단한 리뷰이다. 

시작시 initServer함수에서 코드의 일부분이다. 잘보면 ServerCron을 1초마다 실행시킨다. 

해당 함수를 잘보면 서버가 동시접속과 리플리케이션 함수를 볼 수있게 구현이 된걸 볼수있다.

ServerLog라는 함수가 있다. 이 함수는 redis의 자체적인 로그함수로 각각의 레벨이 존재한다. 

이를 LL_NOTICE로 바꾸고 실행시켜보면 아래와 같이 출력된다.

참고로 listLength함수는 양방향 리스트 구조체의 길이를 구하는 매크로 함수인걸 확인할수있다.

List 내부구현이다.  모든 redis의 모든 객체는 전부 양방향 리스트를 사용한눈에 볼수있다.  이런 구조이면 꽤 많은 캐시단편화 문제가 많아 할당하는곳을 봤는데 

생각대로 자체구현을 하였다. 이부분은 나중에 살펴보는게 좋아보여서 스킵을 하였다.

작성중..

카테고리: C++Programing

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다