레디스 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
62번째 줄: 62번째 줄:
 
*[[copy-on-write]] 방식을 사용한다. 보통 레디스를 사용할 때는 데이터 변경이 자주 있기 때문에 실제 메모리 크기만큼 자식 프로세스가 복사하게 된다. 그로 인해 실제로 필요한 메모리양보다 더 많은 메모리를 사용하게 된다.
 
*[[copy-on-write]] 방식을 사용한다. 보통 레디스를 사용할 때는 데이터 변경이 자주 있기 때문에 실제 메모리 크기만큼 자식 프로세스가 복사하게 된다. 그로 인해 실제로 필요한 메모리양보다 더 많은 메모리를 사용하게 된다.
 
*대규모 트래픽으로 인해 많은 데이터가 업데이트되면 레디스는 Memcached에 비해서 속도가 불안정하다. 이것은 레디스와 Memcached 의 메모리 할당 구조가 다르기 때문에 발생하는 현상이다.
 
*대규모 트래픽으로 인해 많은 데이터가 업데이트되면 레디스는 Memcached에 비해서 속도가 불안정하다. 이것은 레디스와 Memcached 의 메모리 할당 구조가 다르기 때문에 발생하는 현상이다.
*[[jemalloc]]을 사용하기 때문에 매번 malloc과 free를 통해서 메모리 할당이 이루어진다. 반면 Memcached는 slab 할당자를 이용하여 내부적으로는 메모리 재할당을 하지 않고 관리하는 형태를 취한다. 이로 인해 레디스는 [[메모리 파편화]]가 발생하여 이 할당 비용 때문에 응답 속도가 느려진다. 다만 이는 극단적으로 봤을 때 발생하는 일이다. 대규모 서비스에서도 레디스를 많이 도입하는 것을 보면 일반적으로 스타트업 등에서 사용하여도 무방하다 볼 수 있다.<ref name="레디스"></ref>
+
*[[jemalloc]]을 사용하기 때문에 매번 malloc과 free를 통해서 메모리 할당이 이루어진다. 반면 Memcached는 slab 할당자를 이용하여 내부적으로는 메모리 재할당을 하지 않고 관리하는 형태를 취한다. 이로 인해 레디스는 [[메모리 파편화]]가 발생하여 이 할당 비용 때문에 응답 속도가 느려진다. 다만 이는 극단적으로 봤을 때 발생하는 일이다. 대규모 서비스에서도 레디스를 많이 도입하는 것을 보면 일반적으로 스타트업 등에서 사용하여도 무방하다 볼 수 있다.<ref name="레디스">, Redis 개념과 특징 깃허브 - https://goodgid.github.io/Redis/</ref>
 
====사용시 주의할 점====
 
====사용시 주의할 점====
 
레디스는 인메모리 데이터 저장소로서 서버에 장애가 났을 경우 데이터 유실이 발생한다. 따라서 [[스냅샷]](Snapshot)과 [[에이오에프]](AOF) 기능을 통한 복구 시나리오가 제대로 세워져 있어야 데이터 유실에 대비한 사고에 대처할 수 있다. 그리고 캐시 솔루션으로 사용할 시 잘못된 데이터가 캐시 되는 것을 방지, 예방해야 한다. 회사에서 레디스를 운영 중 전 개발자의 실수로 작성된 [[로직]](logic)으로 캐시 데이터가 잘못 [[캐싱]](caching)되어 올바르지 않은 데이터가 꺼내져 한동안 데이터가 꼬이는 일이 있었다. 레디스와 캐싱하고자 하는 데이터 저장소의 데이터가 서로 일치하는지 주기적인 모니터링과 이를 방지하기 위한 사내 솔루션을 개발하는 것이 좋다.<ref>새로비, 〈[https://engkimbs.tistory.com/869 레디스 소개 및 아키텍처, 주의할점 ]〉, 《티스토리》, 2019-06-01</ref>
 
레디스는 인메모리 데이터 저장소로서 서버에 장애가 났을 경우 데이터 유실이 발생한다. 따라서 [[스냅샷]](Snapshot)과 [[에이오에프]](AOF) 기능을 통한 복구 시나리오가 제대로 세워져 있어야 데이터 유실에 대비한 사고에 대처할 수 있다. 그리고 캐시 솔루션으로 사용할 시 잘못된 데이터가 캐시 되는 것을 방지, 예방해야 한다. 회사에서 레디스를 운영 중 전 개발자의 실수로 작성된 [[로직]](logic)으로 캐시 데이터가 잘못 [[캐싱]](caching)되어 올바르지 않은 데이터가 꺼내져 한동안 데이터가 꼬이는 일이 있었다. 레디스와 캐싱하고자 하는 데이터 저장소의 데이터가 서로 일치하는지 주기적인 모니터링과 이를 방지하기 위한 사내 솔루션을 개발하는 것이 좋다.<ref>새로비, 〈[https://engkimbs.tistory.com/869 레디스 소개 및 아키텍처, 주의할점 ]〉, 《티스토리》, 2019-06-01</ref>

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)