이론 정리/Database
레디스를 로컬이 아닌 외부에 두는 이유
철매존
2023. 10. 20. 02:08
728x90
레디스를 로컬이 아닌 외부에 두는 이유
보통 우리가 공부할 때에는 레디스를 로컬에서 실행한다.
근데 회사를 가면 열에 아홉은 외부 레디스를 쓸 것이다.
로컬에서 실행할때 얻을 수 있는 장점은
- 빠른 속도
- 외부 레디스의 경우 통신 과정이 필요하므로 레이턴시가 걸리게 된다.
- 개발 및 테스트
- 개발 환경에서의 접근과 설정, 테스트가 용이하다.
정도일 것이다.
단점은 무엇일까??
어쩌면 뻔하다고 생각될 수 있지만 다음과 같다.
- 데이터 손상
- 로컬에 레디스가 존재하는 경우 데이터가 손실될 염려가 더 크다.
- ex) 서버가 중단되는 경우 데이터의 손상
- 또 외부에 두게 되면 Redis자체적으로 제공되는 스냅샷을 백업하거나 디스크 로그에 저장하는 등등을 통해 데이터를 조금 더 편하게 저장 가능하다.
- 로컬에 레디스가 존재하는 경우 데이터가 손실될 염려가 더 크다.
- 확장성
- 결국 로컬 컴퓨터에 데이터를 저장하므로 용량에 한계가 있을 수밖에 없다.
- 공유 문제
- MSA처럼 여러 서비스가 공유하게 되면 문제가 생긴다.
지금 이 로컬 레디스의 단점
이, 고스란히 외부 레디스의 장점
이 되고 회사에서 서비스를 위한 서버는 외부에 위치시키는 이유가 된다.
딱 봐도 서비스를 실제로 구성할 때에는 저 문제가 있으면 안될것 같잖아...
그리고 또 하나 외부 레디스의 장점이 있는데,
- 고가용성 및 장애 복구가 쉽다
- 복제나 클러스터링이 용이하다.
는 것이다.
레디스는 기본적으로 휘발성 메모리기 때문에 위의 장점은 정말정말 크다.