2011-10-11 2 views
0

레디 스는 이런 식의 가장 좋은 도구라고 생각하지만 가능하다고 생각합니다. 여러 번 모든 사용자에게 보내려는 메시지가 있습니다. 거의 시스템 전체의 뉴스 항목과 같습니다. 사용자가이 메시지를 두 번 이상 보지 못하도록하려면 로그인 할 때 한 번만보아야하며 이후에는 새 항목이 게시 될 때까지 해당 뉴스 섹션을 보지 않아야합니다.Redis에서 '메시지 읽기'유형 대기열 시스템을 구축하는 솔루션이 필요하십니까?

사용자가 메시지를 읽을 때마다 부울 열을 설정하는 것이 비효율적 인 방법이라고 생각합니다. 이런 경우 테이블을 실제로 보관할 수 없습니다. 그렇게하면 사용자가 읽은 메시지와 읽지 않은 메시지를 알 수 없기 때문입니다.

Redis pub/sub를 사용하여 메모리에서 완전히 수행 할 수 있다면 좋을 것입니다. 메시지 읽기 유형 시스템에 대한 몇 가지 전략은 무엇입니까?

답변

0

물론 redis pub/sub 기능을 활용하고 혜성에 socket.io를 사용할 수도 있습니다. 서버가 메시지를 클라이언트에 푸시 다운합니다. 그게 네가하고 싶은 일이라면 좀 더 자세히 설명 할 수는있어.하지만 시스템이 너의 유스 케이스에 복잡해 져야만하는지 잘 모르겠다. pubsub/혜성으로 프론트 엔드에서 백엔드로 모든 것을 구현하는 것은 쉽지만 때로는 필요하지만/문제에 대한 올바른 해결책이기는하지만 쉬운 일이 아닙니다.

creation_date 날짜 필드와 news 테이블을 만듭니다 : 너무, 당신을 위해 해결 수있는 간단한 방법에 대해 어떻게

. last_seen_news_date 필드를 user 테이블에 추가하고 모든 사용자에 대해 과거의 특정 날짜로 설정하십시오. 사용자가 페이지를로드 할 때

,이 같은 뉴스 항목을 조회 :

select * from news where creation_date > last_seen_news_date_of_user 

은 어쩌면 현재의 날짜 또는 가장 최근의 뉴스 기사의 날짜와 last_seen_news_date를 업데이트합니다.

관련 문제