[MONGODB] 레디 스와 MongoDB를
MONGODB레디 스와 MongoDB를
당신이 서로 연계 레디 스 및 MongoDB를 사용에서 도움이 될 경우의 수있는 사람의주고 예를 들어, 사용 사례?
해결법
-
==============================
1.레디 스 및 MongoDB를가 좋은 결과와 함께 사용할 수 있습니다. (MySQL과 스핑크스와 함께) MongoDB를하고 레디 스를 실행하는 잘 알려진 회사는 크레이그리스트입니다. 제레미 자 워드 니에서이 프레젠테이션을 참조하십시오.
레디 스 및 MongoDB를가 좋은 결과와 함께 사용할 수 있습니다. (MySQL과 스핑크스와 함께) MongoDB를하고 레디 스를 실행하는 잘 알려진 회사는 크레이그리스트입니다. 제레미 자 워드 니에서이 프레젠테이션을 참조하십시오.
MongoDB를 다양한 방법으로 색인을 지속, 문서 중심의 데이터에 대한 흥미 롭다. 레디 스 휘발성 데이터 또는 지연에 민감한 반 영구 데이터가 더 재미있다.
여기에 MongoDB를 위에 레디 스의 구체적인 사용의 몇 가지 예입니다.
그것보다 MongoDB를 가진 데이터 모델을 설계하는 것이 훨씬 쉽기 때문에 레디 스 (레디 스보다 낮은 수준이다), 그것은 주요 영구 데이터가 MongoDB를의 유연성에서, 그리고 레디 스에서 제공하는 추가 기능 혜택 (낮은 지연 시간에 재미있다 , 아이템 만료 큐 팝 / 서브 원자 블록 등). 그것은 참 좋은 조합이다.
동일한 시스템에서 레디 스 및 MongoDB를 서버를 실행해서는 안 유의하시기 바랍니다. MongoDB의 메모리가 스왑 아웃 할 수 있도록 설계되어, 레디 스 아니다. MongoDB를 일부 교환 활동을 트리거하는 경우, 레디 스의 성능은 재앙이 될 것입니다. 그들은 서로 다른 노드에 격리되어야한다.
-
==============================
2.분명히 있지만, 매우 높은 개요이보다 훨씬 더 차이가있다 :
분명히 있지만, 매우 높은 개요이보다 훨씬 더 차이가있다 :
사용 사례의 경우 :
기술적 :
이 겹치는 부분이지만, 둘 다 사용하는 것이 매우 일반적이다. 이유는 다음과 같습니다
레디 스은 전통적인 데이터 저장소를 대체 사용할 수 있지만 가장 자주 등 몽고, PostgreSQL을, MySQL은, 같은 다른 정상 "긴"데이터 저장소로 사용되는
-
==============================
3.레디 스는 캐싱 서버로 MongoDB를 함께 훌륭하게 작동합니다. 여기서 발생하는 것입니다.
레디 스는 캐싱 서버로 MongoDB를 함께 훌륭하게 작동합니다. 여기서 발생하는 것입니다.
캐시 쿼리, 그것은 첫째 캐시 서버로 이동합니다 몽구스 문제가 있음을 언제.
캐시 서버는 정확한 쿼리가 지금까지 이전에 발행되어 있는지 확인합니다.
그 다음 캐시 서버가 쿼리를 취할 것입니다하지 않은 경우, MongoDB를로 보내와 몽고 쿼리를 실행합니다.
우리는 그 쿼리의 결과를 취할 것, 그 다음 캐시 서버로 돌아갑니다 캐시 서버 자체에서 쿼리의 결과를 저장합니다.
내가이 응답을하고는 발행 쿼리 다시 그 쿼리에서 온 응답 사이의 기록을 유지하는 것, 그래서 언제 내가 그 쿼리를 실행 말할 것이다.
캐시 서버가 응답을 다시 몽구스에 보낼 것입니다, 몽구스는 표현을 줄 것이다 결국 응용 프로그램 내부에서 끝납니다.
캐시 서버가 대신 자사에 대한 응답을 걸릴 것, MongoDB의에 쿼리를 전송하지 않습니다하기 전에이 쿼리가 발행 된 것을 볼 경우 똑같은 쿼리를 다시 실행되어 언제는, 몽구스는 캐시 서버에 동일한 쿼리를 보내지 만합니다 쿼리는 마지막 시간을 가지고 즉시 몽구스하는 이상 다시 보낼 수 있습니다. 여기에는 인덱스, 아니 전체 테이블 스캔, 아무것도 없다.
우리는이 쿼리가 실행 된 말을하는 간단한 조회를하는거야? 예? 좋아, 요청을 즉시 다시 보내 몽고 아무것도 보내지 마십시오.
우리는 몽구스 서버, 캐시 서버 (레디 스)와 MongoDB를 있습니다.
캐시 서버에서 모든 키가 이전에 발행 쿼리의 몇 가지 유형과 값이 쿼리의 결과 데이터 저장소의 키 값 유형의 데이터 저장소가있을 수 있습니다.
그래서 어쩌면 우리는 _id에 의해 블로그 게시물의 무리를 찾고 있습니다.
그래서 아마 여기에있는 키는 우리가 전에보고 한 기록의 _id입니다.
그래서 몽구스 문제를이 (123)의 _id와 블로그 게시물을 찾으려고 새 쿼리를 상상할 수, 쿼리가 캐시 서버에 유입, 캐시 서버는이 _id 찾고 있던 모든 쿼리에 대한 결과가 있는지 확인합니다 123.
이 캐시 서버에 존재하지 않는 경우,이 쿼리는 촬영과 MongoDB를 인스턴스에 전송됩니다. MongoDB를이 쿼리를 실행 응답을 얻고 그것을 다시 보낼 것이다.
이 결과는 그 결과를 소요 캐시 서버로 다시 전송하고 즉시 우리가 가능한 한 빨리 응답을 얻을 수 있도록 몽구스로 다시 전송됩니다.
오른쪽 그 후, 캐시 서버는 발행 쿼리를 취할 것입니다, 그리고 발행 된 쿼리의 컬렉션에 그것을 추가하고 쿼리의 결과를 가지고 바로 쿼리에 대한 저장합니다.
우리는 우리가 다시 같은 쿼리를 실행 미래에 상상 할 수 있습니다, 그것은 캐시 서버, 그것이이 모든 키에 보이는 안타 오 이미 블로그 게시물, 그것은 몽고 밖으로 도달하지 않는 것을 발견, 그냥 소요 말한다 하여 쿼리의 결과와 몽구스 직접 보냅니다.
우리는 복잡한 쿼리 로직, 아니 인덱스, 그런 아무것도하지 않습니다. 그것의 가능한 한 빨리. 그것의 단순한 키 값을 참조.
캐시 서버 (레디 스)가 MongoDB를 작동 방법에 대한 개요 이잖아.
이제 다른 문제가있다. 우리는 영원히 데이터를 캐싱하고 있습니까? 우리는 어떻게 레코드를 업데이트합니까?
우리는 항상 캐시에 데이터를 저장하기로하고 캐시에서 읽을 수 싶지 않아요.
캐시 서버는 모든 쓰기 작업에 사용되지 않습니다. 캐시 계층은 데이터를 읽는 데 사용됩니다. 우리는 이제까지 쓰기 데이터는 쓰기는 항상 MongoDB의 인스턴스에 가서 것이며, 우리는 우리가 데이터를 우리가 우리가 몽고에서 업데이트 된 레코드와 관련된 캐시 서버에 저장된 데이터를 삭제 쓰기가 언제든지 확인해야합니다.
from https://stackoverflow.com/questions/10696463/mongodb-with-redis by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 NoSQL에 대 DynamoDB의 [폐쇄] (0) | 2019.12.21 |
---|---|
[MONGODB] 어떻게 제품 사용에 MongoDB의 자바 드라이버 MongoOptions를 구성? (0) | 2019.12.21 |
[MONGODB] 무엇 MongoDB를가 V4 정말 의미 전에 ACID를 준수 것을하지 않았다? (0) | 2019.12.20 |
[MONGODB] 어떻게 몽고 쉘의 모든 컬렉션을 나열하려면? (0) | 2019.12.20 |
[MONGODB] 어떻게 명령 줄에서 MongoDB의 데이터베이스를 삭제합니까? (0) | 2019.12.20 |