Redis와 mongoDB 혼용 사용에 대한 질문입니다.


일단은 저는 node.js와 socke.io로 웹 메신저를 구현 중 입니다. 찾아보다보니 레디스도 몽고와 같이 NOSQL기반의 DB라고 알고있는데, 몽고와 같이 혼용해서 쓰는 경우도 있던데 이와 같은 경우는 무슨 이유에서 인가요? 제 생각으로는 레디스도 디스크에 저장은 하나 캐쉬에서 두고 쓰기때문에 접근속도가 빨라서인거 같은데.. 몽고에 저장을 시키면서 불러온걸 캐시에 두고 쓰기 위함인가요? 아니면 다른 이유가 있는것인지.. 또는 몽고나 레디스만 써도 되는것인지 궁급합니다!

  • 2016년 04월 18일에 작성됨
    AWS, node.js, socket.io, mongoDB

조회수 358


2 답변


좋아요
3
싫어요
채택취소하기

레디스는 클러스터를 구성하지 않는다면 설치된 서버의 메모리가 용량 한계 입니다. 디스크에 쓰는 것은 재시작시 데이터를 다시 복구하기 위함입니다.

몽고는 디스크 기반이라 용량 제한이 사실상 없습니다.

보통 둘을 함게 사용할 때는 레디스를 캐시로 사용하는 경우가 많습니다. (생각하신 것 처럼)

다른 경우라면 pub-sub을 레디스가 지원하기 때문에 커넥션을 유지하기 어려운 레일즈 등에서 보조로 사용하는 경우도 있습니다.

  • 2016년 04월 18일에 작성됨
    프로그래밍 언어를 좋아하는 프로그래머


MongoDB는 데이터 저장을 위한것이고

Redis는 데이터를 메모리에 넣고 빼는 캐시 서버입니다

둘을 같이 사용하는 경우는 mongodb로는 데이터를 영원히 저장하고 Redis 서버 오버헤드를 줄이는겸 속도를 높이려 메모리에 저장해두고 꺼내오는 개념입니다

굳이 필요가 없다면 저장을 위한 MongoDB만 사용하셔도 되고

사람도 많이 들어오고 속도가 좀 중요하사 싶으시면 Redis를 사용하셔서 사이트를 캐싱을 해주시면 됩니다

  • 2016년 04월 18일에 작성됨
    웹을 좋아함

  • 레디스는 인 메모리 데이터 저장소 입니다. 캐시 용도로 많이 사용되지만, 캐시서버만을 위해 만들어진 것은 아닙니다.    정대원   2016.4.18 18:52     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close