2014-01-27 7 views
0

알림 시스템을 설정하고 싶습니다. 그들은 다음과 같이 보일 것입니다 :질의 : redis 또는 mongodb?

{user_id: 1, type: 'comment', content: [msg: 'bluhbluh', date: '2014-01-01']} 
{user_id: 1, type: 'message', content: [msg: 'blahblah', date: '2014-01-01']} 

내가 USER_ID 및 유형에 조회해야합니다. 나는 그것이 mongoDB로 쉽게 할 수 있다는 것을 안다. 인터넷에서 찾은 것부터 Redis는 키/값으로 만 작동하므로 쉽지 않습니다.

Redis에서이 작업을 수행 할 수있는 방법이 있는지, 그리고 mongoDB보다 성능이 좋은지 알고 있습니까?

답변

1

일반적으로는 술집 서브 아키텍처를 사용하여 알림 시스템을 설정하는 것이 더 쉽습니다 당신은 그것을 수행하는 방법에 대한 많은 선택이있다. 하나의 빠르고 간단한 옵션은 zeromq pub-sub pattern을 사용하고 물론 다른 많은 선택 사항이 있습니다.

redis vs mongodb는 주로 데이터의 내구성과 쿼리 엔진의 복잡성에 따라 달라집니다. 알림이 대부분 메모리에 저장되고 충분히 빨리 소비되면 redis가 좋은 해결책입니다. 연결된 키 (예 : type.user_id)를 구성하고 정렬 된 집합에 대한 일종의 접두사 검색을 수행하여 키 - 값 제한을 해결할 수 있습니다. Mongodb는 데이터를 지속적으로 유지하고 향후 복잡한 쿼리 모델을 원할 경우 더 좋습니다.

+0

답변 해 주셔서 감사합니다. 내가 통보를했을 때 나는 적절한 용어를 사용하지 않았을 것입니다. 나는 전화 통보에 대해 이야기하는 것이 아니었지만, 당신이 새로운 메시지를 가지고있을 때 페이스 북에 대한 통보와 더 비슷했다. 레디 스에 갈거야! –

1

가장 좋은 방법은 큐가 가득 메시지가 될 필요가 얼마나 내구성과 함께 소비하는 방법에 따라 달라집니다 감사합니다.

Redis는 pub/sub를 지원합니다. 이는 공지 사항을 근로자에게 알리는 데 유용 할 수 있습니다. 이렇게하면 데이터 저장소 전체를 쿼리하지 않아도됩니다.

http://redis.io/topics/pubsub

작업자 시나리오에 대한 또 다른 옵션은 rabbitmq입니다. 이 방법을 사용하면 queue/worker infrastrcutre를 작성할 때 시간을 절약 할 수 있습니다.

http://www.rabbitmq.com/

+0

답장을 보내 주셔서 감사합니다. –