복붙노트

[MONGODB] 레디 스와 MongoDB를

MONGODB

레디 스와 MongoDB를

당신이 서로 연계 레디 스 및 MongoDB를 사용에서 도움이 될 경우의 수있는 사람의주고 예를 들어, 사용 사례?

해결법

  1. ==============================

    1.레디 스 및 MongoDB를가 좋은 결과와 함께 사용할 수 있습니다. (MySQL과 스핑크스와 함께) MongoDB를하고 레디 스를 실행하는 잘 알려진 회사는 크레이그리스트입니다. 제레미 자 워드 니에서이 프레젠테이션을 참조하십시오.

    레디 스 및 MongoDB를가 좋은 결과와 함께 사용할 수 있습니다. (MySQL과 스핑크스와 함께) MongoDB를하고 레디 스를 실행하는 잘 알려진 회사는 크레이그리스트입니다. 제레미 자 워드 니에서이 프레젠테이션을 참조하십시오.

    MongoDB를 다양한 방법으로 색인을 지속, 문서 중심의 데이터에 대한 흥미 롭다. 레디 스 휘발성 데이터 또는 지연에 민감한 반 영구 데이터가 더 재미있다.

    여기에 MongoDB를 위에 레디 스의 구체적인 사용의 몇 가지 예입니다.

    그것보다 MongoDB를 가진 데이터 모델을 설계하는 것이 훨씬 쉽기 때문에 레디 스 (레디 스보다 낮은 수준이다), 그것은 주요 영구 데이터가 MongoDB를의 유연성에서, 그리고 레디 스에서 제공하는 추가 기능 혜택 (낮은 지연 시간에 재미있다 , 아이템 만료 큐 팝 / 서브 원자 블록 등). 그것은 참 좋은 조합이다.

    동일한 시스템에서 레디 스 및 MongoDB를 서버를 실행해서는 안 유의하시기 바랍니다. MongoDB의 메모리가 스왑 아웃 할 수 있도록 설계되어, 레디 스 아니다. MongoDB를 일부 교환 활동을 트리거하는 경우, 레디 스의 성능은 재앙이 될 것입니다. 그들은 서로 다른 노드에 격리되어야한다.

  2. ==============================

    2.분명히 있지만, 매우 높은 개요이보다 훨씬 더 차이가있다 :

    분명히 있지만, 매우 높은 개요이보다 훨씬 더 차이가있다 :

    사용 사례의 경우 :

    기술적 :

    이 겹치는 부분이지만, 둘 다 사용하는 것이 매우 일반적이다. 이유는 다음과 같습니다

    레디 스은 전통적인 데이터 저장소를 대체 사용할 수 있지만 가장 자주 등 몽고, PostgreSQL을, MySQL은, 같은 다른 정상 "긴"데이터 저장소로 사용되는

  3. ==============================

    3.레디 스는 캐싱 ​​서버로 MongoDB를 함께 훌륭하게 작동합니다. 여기서 발생하는 것입니다.

    레디 스는 캐싱 ​​서버로 MongoDB를 함께 훌륭하게 작동합니다. 여기서 발생하는 것입니다.

    캐시 쿼리, 그것은 첫째 캐시 서버로 이동합니다 몽구스 문제가 있음을 언제.

    캐시 서버는 정확한 쿼리가 지금까지 이전에 발행되어 있는지 확인합니다.

    그 다음 캐시 서버가 쿼리를 취할 것입니다하지 않은 경우, MongoDB를로 보내와 몽고 쿼리를 실행합니다.

    우리는 그 쿼리의 결과를 취할 것, 그 다음 캐시 서버로 돌아갑니다 캐시 서버 자체에서 쿼리의 결과를 저장합니다.

    내가이 응답을하고는 발행 쿼리 다시 그 쿼리에서 온 응답 사이의 기록을 유지하는 것, 그래서 언제 내가 그 쿼리를 실행 말할 것이다.

    캐시 서버가 응답을 다시 몽구스에 보낼 것입니다, 몽구스는 표현을 줄 것이다 결국 응용 프로그램 내부에서 끝납니다.

    캐시 서버가 대신 자사에 대한 응답을 걸릴 것, MongoDB의에 쿼리를 전송하지 않습니다하기 전에이 쿼리가 발행 된 것을 볼 경우 똑같은 쿼리를 다시 실행되어 언제는, 몽구스는 캐시 서버에 동일한 쿼리를 보내지 만합니다 쿼리는 마지막 시간을 가지고 즉시 몽구스하는 이상 다시 보낼 수 있습니다. 여기에는 인덱스, 아니 전체 테이블 스캔, 아무것도 없다.

    우리는이 쿼리가 실행 된 말을하는 간단한 조회를하는거야? 예? 좋아, 요청을 즉시 다시 보내 몽고 아무것도 보내지 마십시오.

    우리는 몽구스 서버, 캐시 서버 (레디 스)와 MongoDB를 있습니다.

    캐시 서버에서 모든 키가 이전에 발행 쿼리의 몇 가지 유형과 값이 쿼리의 결과 데이터 저장소의 키 값 유형의 데이터 저장소가있을 수 있습니다.

    그래서 어쩌면 우리는 _id에 의해 블로그 게시물의 무리를 찾고 있습니다.

    그래서 아마 여기에있는 키는 우리가 전에보고 한 기록의 _id입니다.

    그래서 몽구스 문제를이 (123)의 _id와 블로그 게시물을 찾으려고 새 쿼리를 상상할 수, 쿼리가 캐시 서버에 유입, 캐시 서버는이 _id 찾고 있던 모든 쿼리에 대한 결과가 있는지 확인합니다 123.

    이 캐시 서버에 존재하지 않는 경우,이 쿼리는 촬영과 MongoDB를 인스턴스에 전송됩니다. MongoDB를이 쿼리를 실행 응답을 얻고 그것을 다시 보낼 것이다.

    이 결과는 그 결과를 소요 캐시 서버로 다시 전송하고 즉시 우리가 가능한 한 빨리 응답을 얻을 수 있도록 몽구스로 다시 전송됩니다.

    오른쪽 그 후, 캐시 서버는 발행 쿼리를 취할 것입니다, 그리고 발행 된 쿼리의 컬렉션에 그것을 추가하고 쿼리의 결과를 가지고 바로 쿼리에 대한 저장합니다.

    우리는 우리가 다시 같은 쿼리를 실행 미래에 상상 할 수 있습니다, 그것은 캐시 서버, 그것이이 모든 키에 보이는 안타 오 이미 블로그 게시물, 그것은 몽고 밖으로 도달하지 않는 것을 발견, 그냥 소요 말한다 하여 쿼리의 결과와 몽구스 직접 보냅니다.

    우리는 복잡한 쿼리 로직, 아니 인덱스, 그런 아무것도하지 않습니다. 그것의 가능한 한 빨리. 그것의 단순한 키 값을 참조.

    캐시 서버 (레디 스)가 MongoDB를 작동 방법에 대한 개요 이잖아.

    이제 다른 문제가있다. 우리는 영원히 데이터를 캐싱하고 있습니까? 우리는 어떻게 레코드를 업데이트합니까?

    우리는 항상 캐시에 데이터를 저장하기로하고 캐시에서 읽을 수 싶지 않아요.

    캐시 서버는 모든 쓰기 작업에 사용되지 않습니다. 캐시 계층은 데이터를 읽는 데 사용됩니다. 우리는 이제까지 쓰기 데이터는 쓰기는 항상 MongoDB의 인스턴스에 가서 것이며, 우리는 우리가 데이터를 우리가 우리가 몽고에서 업데이트 된 레코드와 관련된 캐시 서버에 저장된 데이터를 삭제 쓰기가 언제든지 확인해야합니다.

  4. from https://stackoverflow.com/questions/10696463/mongodb-with-redis by cc-by-sa and MIT license