2012-09-01 4 views
0

Redis의 게시/구독 기능을 사용하고 있습니다. 따라서 서버는 10 개의 항목을 게시하고 클라이언트는 10 개의 항목을 가져옵니다.Redis의 "보관 처리"게시/수신 메시지

그러나 이제 새 클라이언트가 피드에 가입합니다. 나는 그들이 이전의 10 가지 아이템과 새로운 아이템을 얻길 바란다.

Redis는 게시 및 가입 기능을 사용하여 이렇게하는 방법이 있습니까? 피드 히스토리는 데이터베이스의 어디에도 저장되어 있습니까? 이 작업을 수행하는 쉬운 방법이 있습니까? 메시지를 목록에 저장하고 클라이언트가 목록에 LRANGE my_list 0 10을 수행하도록하는 가장 좋은 방법입니까?

답변

7

저는 데이터의 별도 보관을 유지하고 이벤트를 둘 다 추가했습니다. 신규 고객은 실시간 이벤트를 구독하고 대기열에 넣을 수 있으며, 첫 번째 게시 된 이벤트로 최신 상태가 될 때까지 아카이브를 읽은 다음 게시 된 이벤트를 따라갈 수 있습니다. 이렇게하면 보관 된 이벤트와 실시간 이벤트를 전환하면서 게시 된 이벤트를 놓치지 않아야합니다.

1

이런 종류의 목적을 위해 nodejs 앱을 만들었습니다. 내 경우에는 사용자 데이터가 저장하고 싶은 redis 서버에 게시되었고, nodejs 앱으로 redis 채널에 등록한 다음 데이터베이스에 세부 정보를 저장했습니다. 지금까지 mysql과 mongo를 사용하여 주위를 놀았습니다. 알려주세요. 이것이 어떤 관심사이고 부적절한 코드를 붙여 넣는다면 게시 기록을 저장하는 데있어서 몇 가지 유사점이 있습니다 ...

건배