2012-06-08 4 views
2

저는 처음으로 Redis 데이터베이스를 설계했으며 약간의 피드백, 제안 또는 팁을 원합니다.Redis 데이터베이스 설계 기초

개요 :

등 나중에 업데이트, 좋아으로 분류 날짜 생성 할 수 있습니다 내 레디 스 데이터베이스는 기사, 저자 ...

기사는 "항목"나는 또한 필요 포함 어떤 기사가 그들 중 하나의 항목을 alteast 가지고 결정합니다.

창조

새로운 기사가 ​​나는 다양한 키

ZADD

에 그 ID를 쓰기 만든 '기사 : 만든'타임 스탬프

ZADD

은 articleID '기사 : 업데이트 된'타임 스탬프은 articleID

ZADD '기사들 : 좋아하는 것'0 ArticleID

SADD 'user : USERI D : 기사 '은 articleID

기사가

ZADD

업데이트 될 때마다

'기사 : ITEMCOUNT 'ITEMCOUNT은 articleID : 업데이트 된 기사'타임 스탬프은 articleID 항목이 기사에

ZADD 추가 될 때마다

'을

그리고 항목이 제거되고, 아이템이 남아있는 경우, 단순히 멤버

ZREM 삭제 'ARTI 사이클 사용 : 기사 좋아 '와': 업데이트 '

  • 내가 수행 결과와 기사 : ITEMCOUNT'
    1. 내가 가진 ZUNIONSTORE를 수행은 articleID이 분류에 관해서

      그래서 나는 다음을 수행합니다 ' 상기 결과에 대한 ZINTERSTORE와 '기사 : ITEMCOUNT'

    2. 결과와는 단순히 그러나 나는 새로운 오전,이 모든 작품을 찾기 ZREVRANGEBYSCORE

    을 수행하고 내가 그것을 수행 할 작업을 수행 Redis는 제안과 개선을 위해 열립니다.

    감사

    ,

    - 제임스

  • 답변

    0

    나는 솔루션에 동의합니다.

    개선의 Transaction

    창조

    MULTI

    ZADD '기사 : 창조'에 대해 생각 소인은 articleID

    ZADD '기사 : 업데이트 된'타임 스탬프은 articleID

    ZADD '기사 : 좋아하는'0은 articleID

    SADD '사용자 : USERID : 기사'은 articleID

    +0

    답장을 보내 주셔서 감사하고, MULTI 명령을 제안 주셔서 감사합니다, 나는 더 일을

    EXEC 후속 질문. 더 많은 방법으로 결과를 필터링하고 싶다면 특정 목적을 위해 더 많은 키를 만들 필요가 있습니다. 분명히 각 키에는 단순히 기사 ID와 점수가 포함되어 있습니다. 현재 SQL에서 오는 약 30 가지의 다른 필터링 방법이 있습니다. 각 ID가 30 개의 서로 다른 키에 걸쳐 복제되므로 매우 이상하게 보입니다. 간단히 말해서,이 작업이 어떻게 완료되었는지, 그렇다면 이것이 내 요구 사항에 대한 잘못된 선택입니다. 감사합니다. - James –