복붙노트

[REDIS] 시간 - 기반 값을 정렬 레디 스 데이터 구조 설계

REDIS

시간 - 기반 값을 정렬 레디 스 데이터 구조 설계

나는 데이터 스트림에 대한 몇 가지 분석을 수행하고, 레디 스 채널에 결과를 게시하고있다. 소비자는 이러한 채널을 구독하고 실시간 데이터 피드를 얻을. 모든 기록 데이터 분석 결과는 손실됩니다.

지금은 소비자가이 기록 데이터를 조회 할 수 있도록 (주로 시간) 레디 스에서 기록 데이터를 저장할 수있는 기능을 추가 할 수 있습니다. 분석 결과는 시간에 의해 분할되어 있기 때문에 무슨 일이 레디 스에 결과를 저장하는 좋은 디자인이 될 것인가?

해결법

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

    1.사용은 정렬 된 세트 레디 스.

    사용은 정렬 된 세트 레디 스.

    정렬 된 세트는 그래서 귀하의 경우, 단지 밀리의 타임 스탬프를 사용, "점수"를 기반으로 데이터를 저장; 데이터가 자동으로 정렬이 시작 / 종료 날짜 범위를 사용하여 역사적 항목을 검색 할 수있게 될 것이며, 여기에 예입니다 ...

    소트 세트에 항목을 추가 ...

    zadd historical <timestamp> <dataValue>
    

    일부 샘플 데이터 ..add ..

     zadd historical 1 data1
     zadd historical 2 data2
     zadd historical 3 data3
     zadd historical 4 data4
     zadd historical 5 data5
     zadd historical 6 data6
     zadd historical 7 data7
    

    시작 / 종료 범위를 사용하여 아이템들의 서브 세트를 ..retrieve ...

     zrangebyscore historical 2 5
    

    ..보고...

    1) "data2"
    2) "data3"
    3) "data4"
    4) "data5"
    

    당신이 마지막 날에 대한 모든 기록 항목을 검색 할 경우에 따라서, 귀하의 경우, 단지 이렇게 ...

    zrangebyscore historical <currentTimeInMillis - 86400000> <currentTimeInMillis> 
    
  2. from https://stackoverflow.com/questions/17153154/redis-data-structure-design-for-sorting-time-based-values by cc-by-sa and MIT license