복붙노트

[REDIS] 분석을위한 주요 계획을 레디 스

REDIS

분석을위한 주요 계획을 레디 스

개체 당 기본 카운터, 시간 / 일 / 주 / 월 / 년, 총 당 - 나는 레디 스를 사용하여 분석을 만들려면

어떤 데이터 구조가 이에 대한 효과적 일 것 레디 스와 어떻게 레디 스 많은 통화를하고 피할 수있다?

더 나은 각 모델을 가지고 할 것은 키의 세트가 :

해시 - 모델 : : 년 => 매년 카운터를 가지고

해시 - 모델 : <연도> => 매월 카운터를 가지고

해시 - 모델 : : <연도> <월> => 매일 카운터를 가지고

해시 - 모델 : : <연도> <월> <일> => 모든 시간은 카운터가 있습니다

이 제도가 맞다면, 어떻게 레디 스 많은 통화를하지 않고이 데이터를 차트 것인가? : 나는 모델의 모든 년에 루프 것이다 년 등 한 달에 한 달, 다음 루프를 가져 오기? 아니면 그냥 배치 요청으로 모든 키의 모든 필드와 그 값을 잡아 다음 서버에 그 처리?

해결법

  1. ==============================

    1.그것은 해시 대신이에 대한 ZSET을 사용하는 것이 좋습니다. 점수로 타임 스탬프를 사용하면 특정 시간 범위에 대한 데이터를 검색 할 수 있습니다

    그것은 해시 대신이에 대한 ZSET을 사용하는 것이 좋습니다. 점수로 타임 스탬프를 사용하면 특정 시간 범위에 대한 데이터를 검색 할 수 있습니다

    : <연도> <월>, 시간 범위 (모델을 사용하여 : <연도> <월> <일>) 날짜를 들어 당신이 모델을 사용 범위 등등 .. .

    : 2014 : 01, 모델 : : 2014 : 날짜 범위는 한 달에보다 큰 경우 실제로 (예 : 3 월 20 2014 년 1 월 1 일 2014 년), 여러 ZSET (모델을 검색해야합니다 02 및 모델 : : 2014 : 03)하고 그 결과를 병합합니다.

    당신이 정말로 하나의 요청 내부 날짜 범위를 수행하려는 경우, 당신은 항상 모델 내부의 일 정밀 데이터를 저장할 수 있습니다 : : <년>. 여러 년 동안 날짜 범위를 처리하는 경우에, 당신은 예를 들어, ZSET 하나가 필요합니다 모델 : : BYDAY.

    그러나 이미 데이터 보존에 대해 생각해야하므로 기록 데이터를 저장하는 시간이 지남에 따라 메모리 소비가 증가 할 것으로 참고하시기 바랍니다. 레디 스를 사용하면 하나 사용 ZSET에 만료하거나 크론로 자신을.

  2. from https://stackoverflow.com/questions/26174150/redis-key-scheme-for-analytics by cc-by-sa and MIT license